sql中的case when 类似Java中的switch,比较灵活
语法
简单Case函数
CASE 字段名称
WHEN 字段值 THEN 新值
[WHEN 字段值 THEN 新值]
...
[ELSE 默认值]
END
Case搜索函数
CASE
WHEN 断言条件 THEN 新值
[WHEN 断言条件 THEN 新值
...
[ELSE 默认值]
END
CASE 断言条件
WHEN TRUE THEN 新值 ELSE 默认值
END
举例:
select tdp.product_id, CASE tdp.product_price IS NULL WHEN TRUE THEN tddp.product_price ELSE tdp.product_price END channel_price, tddp.product_code
from trade_distribute_products tdp
join trade_distribute_default_products tddp on tdp.product_id = tddp.product_id
where tdp.distribute_id = 1 and tdp.delete_flag = 1 and tddp.delete_flag = 1