当前位置: 首页 > news >正文

‌CASE WHEN THEN ELSE END‌

CASE WHEN THEN ELSE END‌ 是SQL中实现条件逻辑的核心表达式,支持单字段匹配和多条件判断,适用于数据处理、分类统计等场景。

基本语法形式

SQL中CASE表达式有两种标准形式:

1‌  简单CASE表达式‌(字段直接匹配)

CASE 字段
WHEN 值1 THEN 结果1
WHEN 值2 THEN 结果2
ELSE 默认结果
END

示例:CASE gender WHEN 'M' THEN '男' ELSE '未知' END‌‌1‌‌2

2‌、搜索CASE表达式‌(支持复杂条件)。

CASE
WHEN 条件1 THEN 结果1
WHEN 条件2 THEN 结果2
ELSE 默认结果
END

示例:CASE WHEN salary>5000 THEN '高收入' WHEN salary>3000 THEN '中等收入' ELSE '低收入' END‌‌  3‌‌   4 

核心功能特性

  • 短路执行机制‌:仅返回首个满足条件的THEN结果,后续条件不再评估。‌‌5‌‌6
  • ELSE可选性‌:省略ELSE子句时默认返回NULL。‌‌7
  • 结果类型一致性‌:所有THEN结果和ELSE结果必须保持相同数据类型。‌‌8

典型应用场景

1‌  数据分类标注‌。

SELECT product_name,
CASE WHEN price > 100 THEN '高价商品'
WHEN price > 50 THEN '中价商品'
ELSE '平价商品'
END AS price_level
FROM products;
2.动态分组统计‌。

SELECT
CASE WHEN age < 18 THEN '未成年'
WHEN age BETWEEN 18 AND 60 THEN '成年人'
ELSE '老年人'
END AS age_group,
COUNT(*) AS user_count
FROM users
GROUP BY age_group;
3‌  条件聚合计算‌。

SELECT department,
SUM(CASE WHEN status = 'completed' THEN amount ELSE 0 END) AS total_completed,
SUM(CASE WHEN status = 'pending' THEN amount ELSE 0 END) AS total_pending
FROM orders
GROUP BY department;

NULL值处理‌:需显式使用IS NULL判断,如WHEN field IS NULL THEN '空值'‌‌11

http://www.lryc.cn/news/604274.html

相关文章:

  • 分布式系统:一致性
  • Linux常用基础命令
  • 【大语言模型入门】—— Transformer 如何工作:Transformer 架构的详细探索
  • 【C语言】指针深度剖析(一)
  • LeetCode 11 - 盛最多水的容器
  • VUE进阶案例
  • RabbitMQ 消息持久化的三大支柱 (With Spring Boot)
  • Hyperchain账本数据存储机制详解
  • C++:stack与queue的使用
  • AI应用:电路板设计
  • [mcp: JSON-RPC 2.0 规范]
  • Excel文件批量加密工具
  • 【LeetCode 随笔】
  • flask使用celery通过数据库定时
  • 【C语言进阶】题目练习
  • 深入理解 Qt 元对象系统 (Meta-Object System)
  • 最新优茗导航系统源码/全开源版本/精美UI/带后台/附教程
  • Linux定时器和时间管理源码相关总结
  • 进阶向:Manus AI与多语言手写识别
  • Python 程序设计讲义(27):字符串的用法——字符串的常用操作
  • 快速了解逻辑回归
  • Kubernetes自动扩容方案
  • Linux 系统启动与 GRUB2 核心操作指南
  • BreachForums 黑客论坛强势回归
  • 【数据结构】用堆实现排序
  • Typecho handsome新增评论区QQ,抖音,b站等表情包
  • python基础:request请求Cookie保持登录状态
  • 关于算法的一些思考
  • PyCharm插件开发与定制指南:打造个性化开发环境
  • Vulnhub napping-1.0.1靶机渗透攻略详解