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
其他价格
结束