达梦数据库CASE WHEN条件
1. CASE WHEN基础语法
CASE WHEN
是SQL中常用的条件表达式,类似于编程语言中的if-else
,可用于SELECT
、UPDATE
等语句。
基本格式:
CASE WHEN 条件1 THEN 值1
WHEN 条件2 THEN 值2...
ELSE 默认值
END
示例1:单条件更新
UPDATE TABLE_NAME
SET SUB_TYPENAME =
CASE WHEN SUB_TYPE = '1'THEN ' 开心型'
WHEN SUB_TYPE = '2'THEN '快乐型'
WHEN SUB_TYPE = '3'THEN '难过型'
WHEN SUB_TYPE = '4'THEN '忧郁型'
WHEN SUB_TYPE = '5'THEN '迷茫型
ELSE SUB_TYPENAME-- 不匹配时保留原值END WHERE SUB_TYPEIN ('1', '2', '3', '4', '5');
示例2:多字段条件更新(结合JOIN)
UPDATE TABLE_NAME a
SETa.PIID = b.INSTANCEID,a.WF_STATUS =CASE b.STATUS WHEN '2'THEN '03'ELSE '01'END,a.NODE_CODE =CASE WHEN b.STATUS = '2'THEN 'end'ELSE a.NODE_CODEEND,a.NODE_NAME =CASE WHEN b.STATUS = '2'THEN '流程结束'ELSE a.NODE_NAMEEND FROM STI_QC_RESULT b
WHERE a.TABLE_UUID = b.SEQKEY;
2. 常见问题
- **达梦数据库的
CASE WHEN
是否支持嵌套?**支持,但建议保持简单,复杂逻辑可拆分为多个步骤。 - **能否在
WHERE
子句中使用CASE WHEN
?**可以,但通常推荐使用AND/OR
组合条件。