达梦数据库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组合条件。
相关推荐
吠品6 小时前
Zabbix Web界面误报Server未运行的排查与解决
java·服务器·数据库
SelectDB6 小时前
Apache Doris Variant 动态 JSON 实战教程:从建表到跑通 100M Agent 日志查询
数据库
sg_knight6 小时前
MySQL 存储过程详解:从入门到实战
android·数据库·mysql·database·dba·关系型数据库·db
星空露珠7 小时前
28种颜色对应名称,
开发语言·数据库·算法·游戏·lua
踏月的造梦星球8 小时前
DM8 DSC 单机双实例部署
运维·开发语言·数据库
Database_Cool_8 小时前
企业级多模态分析计算引擎选型:首选 AnalyticDB MySQL 向量 + SQL + 实时一体化方案
数据库·sql·mysql
SelectDB8 小时前
从 Oracle、Hadoop 到 Apache Doris:哥瑞利泛半导体智能制造数据平台实践
数据库
ihuyigui8 小时前
海外签收通知短信接口
android·java·开发语言·前端·数据库·后端
海棠Flower未眠8 小时前
SpringBoot 消息死信队列(荣耀典藏版)
java·数据库·spring boot
Y3815326629 小时前
SERP API + Redis 缓存层:4 种方案对比与选型
数据库·redis·缓存