这是我的表格:
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
如果price
是负数,我想shares
负数。
我知道我必须使用CASE
但不知道如何正确实现它,这是我的尝试:
sqlite> SELECT CASE
...> WHEN shares<0
...> THEN price=price*-1
...> END, stock,shares,price FROM portafolio;
输出:
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