达梦数据库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组合条件。
相关推荐
祭曦念9 小时前
MySQL基础运维:mysqldump全量备份与恢复实操 | 新手可直接落地的备份指南
运维·数据库·mysql
于樱花森上飞舞10 小时前
【Redis】初识Redis
数据库·redis·缓存
羊小猪~~10 小时前
【QT】-- QMainWindow简介
开发语言·数据库·c++·后端·qt·前端框架·求职招聘
codkingo10 小时前
Skill:Agent 的可插拔能力单元
数据库·oracle
Boop_wu10 小时前
[MyBatis] MyBatis 快速入门(1)
数据库·oracle
l1t10 小时前
QWen 3.5plus总结的总结基准测试结果的正确方法
前端·数据库
额12910 小时前
CentOS 7 安装apache部署discuz导入数据库表
数据库·centos·apache
大阿明10 小时前
Spring.factories
java·数据库·spring
2401_8735449210 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python
wenlonglanying10 小时前
MYSQL的第一次作业
数据库·mysql