达梦数据库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组合条件。
相关推荐
爱吃火鸡面呀21 分钟前
MySQL 查询与函数详解:从基础条件筛选到高级字符处理
数据库·mysql
奥莱维29 分钟前
KNX酒店方案_KNX专用线与高端酒店技术逻辑
java·服务器·前端·数据库
牛大兵38 分钟前
机顶盒获取局域网已经使用IP,开放的端口号,扫描摄像头,NAS,共享主机等开机自启局域网全量扫描工具
数据库·网络协议·tcp/ip
知行产研43 分钟前
中国矿山无人驾驶出海的三重门
数据库·mysql·php
l1258651 小时前
# RAG低延迟架构设计:从5秒到500ms的优化全链路
数据库·人工智能·python·langchain
RisunJan1 小时前
Linux命令-vgdisplay(显示卷组详细属性)
linux·运维·数据库
爱和冰阔落2 小时前
【MySQL 慢查询排查实战】列表接口逐渐变慢时,怎样从请求链路定位原因
android·数据库·mysql
JacksonMx2 小时前
企业级 JPA 与数据库架构落地指南
数据库·数据库架构
Dxy12393102162 小时前
MySQL有哪些锁?InnoDB锁体系完整梳理博客
数据库·mysql
蒸蒸yyyyzwd2 小时前
cpp选手秋招学习笔记 day12
笔记·学习·oracle