达梦数据库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组合条件。
相关推荐
海南java第二人9 小时前
Nebula Graph 实战:基于图数据库存储 CMDB 实体关系
数据库·图数据库·nebula
曹牧9 小时前
oracle:“not all variables bound”
数据库·oracle
数据库百宝箱9 小时前
Oracle RMAN Image Copy 本地恢复
数据库·oracle
zuYM4g7Dp10 小时前
NoSql数据库设计心得
数据库·nosql
睡不醒男孩03082312 小时前
第七篇:揭秘 PostgreSQL 数据库内核级管控:CLup 深度架构设计与高可用底座技术白皮书
数据库·postgresql·clup
cmes_love13 小时前
Level 2逐笔成交历史数据下载方法笔记
数据库·笔记·oracle
swordbob13 小时前
MySQL字符集陷阱:从Oracle迁移踩坑到utf8mb4强制规范
数据库·sql
牛油果子哥q13 小时前
【C++ STL string 】C++ STL string 终极精讲:底层原理、内存机制、全套API、深浅拷贝、易错坑点与工程实战规范
数据库·c++
十五年专注C++开发13 小时前
MySql中各种功能用sql语句实现总结
数据库·sql·mysql
数据库小学妹14 小时前
AI时代数据库怎么选?多模融合、数据统一存储与选型实战指南
数据库·人工智能·经验分享·ai