SQLite3 IF语句,基于其他列的条件
这是我的桌子:SQLite3 IF语句,基于其他列的条件,sqlite,case,conditional-statements,Sqlite,Case,Conditional Statements,这是我的桌子: sqlite> SELECT * from portafolio WHERE my_id=1; id my_id stock name shares price date ---------- ---------- ---------- ------------- ---------- ---------- ------------------- 1
sqlite> SELECT * from portafolio WHERE my_id=1;
id my_id stock name shares price date
---------- ---------- ---------- ------------- ---------- ---------- -------------------
1 1 NFLX Netflix, Inc. 2 133.26 2017/01/19 06:40AM
2 1 GM General Motor 1 37.47 2017/01/19 06:40AM
3 1 NFLX Netflix, Inc. -2 133.26 2017/01/19 06:41AM
4 1 NFLX Netflix, Inc. 4 133.26 2017/01/19 06:41AM
如果股票
为负数,我想将价格
设为负数
我知道我必须使用案例
,但不知道如何正确实施,以下是我的尝试:
sqlite> SELECT CASE
...> WHEN shares<0
...> THEN price=price*-1
...> END, stock,shares,price FROM portafolio;
sqlite>SELECT CASE
当股票价格=价格*-1时
最终,股票,股票,价格从Portapolio;
输出:
CASE
WHEN shares<0
THEN price=price*-1
END stock shares price
------------------------------------------ ---------- ---------- ----------
NFLX 2 133.26
GM 1 37.47
0 NFLX -2 133.26
NFLX 4 133.26
ST 1 41.2
HA 5 56.65
0 ST -1 41.2
0 HA -3 56.65
0 HA -2 56.65
GM 1 37.47
0 GM -1 37.47
案例
当共享时,您的查询中没有任何ELSE
大小写。没有ELSE
的情况下,如果shares
小于零,则不会有结果。另外,您不需要将price*-1
分配给price
。就像这样使用它:
CASE WHEN shares < 0
THEN price * -1
ELSE price
END
共享<0时的情况
然后价格*-1
其他价格
结束
您的查询中没有任何其他
案例。没有ELSE
的情况下,如果shares
小于零,则不会有结果。另外,您不需要将price*-1
分配给price
。就像这样使用它:
CASE WHEN shares < 0
THEN price * -1
ELSE price
END
共享<0时的情况
然后价格*-1
其他价格
结束