大数据学习(107)-sql中case使用场景

🍋🍋大数据学习🍋🍋

🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


在 SQL 中,CASE 语句是处理条件逻辑的核心工具,以下是 6 个典型使用场景及示例:

1. 数据分类统计

将连续数值分段统计(如年龄、分数):

sql 复制代码
SELECT 
CASE 
WHEN age < 18 THEN '未成年'
WHEN age BETWEEN 18 AND 65 THEN '成年'
ELSE '老年'
END AS age_group,
COUNT(*) AS count
FROM users
GROUP BY age_group;
2. 条件聚合计算

根据条件计算不同聚合值(如动态求和):

sql 复制代码
SELECT 
product_id,
SUM(CASE WHEN order_date > '2025-01-01' THEN price ELSE 0 END) AS sales_2025,
SUM(CASE WHEN order_date <= '2025-01-01' THEN price ELSE 0 END) AS sales_before_2025
FROM orders
GROUP BY product_id;
3. 数据格式转换

将编码值转为可读文本(如状态码转文字):

sql 复制代码
SELECT 
order_id,
CASE status
WHEN 1 THEN '待付款'
WHEN 2 THEN '已发货'
WHEN 3 THEN '已完成'
ELSE '未知状态'
END AS status_text
FROM orders;
4. 处理 NULL 值

在聚合函数中优雅处理空值:

sql 复制代码
SELECT 
AVG(CASE WHEN salary IS NULL THEN 0 ELSE salary END) AS avg_salary
FROM employees;
5. 动态排序规则

根据不同条件动态调整排序逻辑:

sql 复制代码
SELECT *
FROM products
ORDER BY 
CASE 
WHEN category = '电子' THEN price * 0.9 -- 电子产品打9折后排序
ELSE price
END DESC;
6. 复杂逻辑嵌套

结合其他函数实现多层判断(如评分评级):

sql 复制代码
SELECT 
user_id,
CASE 
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
ELSE 'D'
END AS rating
FROM evaluations;

核心优势

  • 灵活性:支持多条件分支和复杂逻辑组合
  • 可读性:将业务规则直接映射为 SQL 代码
  • 兼容性 :所有主流数据库均支持 CASE 语法
  • 性能:通常比应用程序层处理更高效

通过合理使用 CASE,可以实现 SQL 查询的逻辑复用动态计算,是数据分析中不可或缺的工具。

相关推荐
邵奈一14 小时前
【紧急处理ZCode事件】ZCode 工作区快照静默上传:检测方法与三层防护实践
人工智能·学习·大模型·国产
小K讲AI营销14 小时前
AI基础设施融资路径的中美比较:资本市场模式与政策金融模式
大数据·数据库·人工智能
那年窗外下的雪.14 小时前
AIDC 学习日志|第 27 天|EVPN 多归属收敛时间线与 Leaf2 接管验证
网络协议·学习·http·tcpdump
净水深流14 小时前
中国冷链冷库行业数据分析:从规模扩张到技术驱动
大数据·数据库·人工智能·冷库冷链
卷毛迷你猪14 小时前
快速实验篇(A9-2)Python vs MapReduce:小批量任务的工具选择
大数据·hadoop
Moshow郑锴14 小时前
跨国银行现金流数据集市(Cash Flow Data Mart)设计理念
大数据·数据集市·datamart
秦哈哈14 小时前
【HelloAgents】学习笔记(四)
学习·ai·agent
j7~15 小时前
【Linux】三十八.C++ 手写 HTTP 服务器:裸 socket + fork 多进程,从 HTTP 报文解析到浏览器打开网页
linux·网络·网络协议·学习·http·网络编程
日拱一卒的小田15 小时前
ZYNQ学习笔记4-ZYNQ的SD卡控制器2
笔记·学习
IT研究室15 小时前
最新大数据毕业设计选题推荐-基于大数据的天气预报预警数据可视化与分析-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计