达梦数据库CASE WHEN条件

1. CASE WHEN基础语法

CASE WHEN是SQL中常用的条件表达式,类似于编程语言中的if-else,可用于SELECTUPDATE等语句。

基本格式:

sql 复制代码
CASE WHEN 条件1 THEN 值1
WHEN 条件2 THEN 值2
    ...
ELSE 默认值
END

示例1:单条件更新

sql 复制代码
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)

sql 复制代码
UPDATE TABLE_NAME a
SET
    a.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组合条件。
相关推荐
duke869267214几秒前
HTML怎么区分正文与广告_HTML aside与广告位语义【技巧】
jvm·数据库·python
@北海怪兽6 分钟前
SQL常见函数整理 _ STRING_AGG()
android·数据库·sql
环流_11 分钟前
Redis过期策略
数据库·redis·缓存
北秋,11 分钟前
Web Security Academy 第四关:SQL 注入查询 MySQL / SQL Server 版本
数据库·sql·mysql
2401_8246976620 分钟前
如何实现SQL存储过程状态监控_编写实时运行监控仪表盘
jvm·数据库·python
Mike117.23 分钟前
GBase 8c MOT 内存表落地前要先画清楚边界
服务器·数据库
iAm_Ike23 分钟前
c++怎么在写入文件流时通过peek预读功能实现复杂的逻辑判断【实战】
jvm·数据库·python
dFObBIMmai25 分钟前
mysql如何确保主从数据完全同步_开启半同步复制机制
jvm·数据库·python
2501_9307077838 分钟前
使用C#代码压平 PDF 表单字段
数据库·pdf·c#
m0_470857641 小时前
CSS如何实现Bootstrap进度条自定义动画_利用keyframe关键帧
jvm·数据库·python