CASE WHEN逻辑转换
语法一、适用于条件表达式为一定的范围
CASE WHEN 条件表达式1 THEN 结果表达式1
CASE WHEN 条件表达式2 THEN 结果表达式2
...
ELSE
END
例:根据交易数量,判断大单中单小单
SELECT volume,
CASE WHEN volume>=3000 THEN '大单'
WHEN volume>300 AND volume<3000 THEN '中单'
ELSE '小单'
END
FROM t_stock_trains_dtl
WHERE opt_typ = '买入';
语法二、适用于条件表达式为不大的可穷举的列表
CASE 条件
WHEN 匹配表达式1 THEN 结果表达式1
CASE WHEN 匹配表达式2 THEN 结果表达式2
...
ELSE
END
例:将股票交易金额输出为正值
SELECT opt_typ,price,volume
CASE opt_typ
WHEN '买入' THEN price*volume
WHEN '卖出' THEN 0-price*volume
ELSE 0
END
FROM t_stock_trains_dtl
;