这是我的表:
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
任何帮助都会受到赞赏。
答案 0 :(得分:2)
您的查询中没有ELSE
个案例。如果ELSE
小于零,则没有shares
将没有结果。此外,您不需要将price * -1
分配给price
。只需使用它:
CASE WHEN shares < 0
THEN price * -1
ELSE price
END