大数据学习
系列专栏: 哲学语录: 用力所能及,改变世界。
如果觉得博主的文章还不错的话,请点赞+收藏⭐️+留言支持一下博主哦
在 SQL 中,CASE
语句是处理条件逻辑的核心工具,以下是 6 个典型使用场景及示例:
将连续数值分段统计(如年龄、分数):
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;
根据条件计算不同聚合值(如动态求和):
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;
将编码值转为可读文本(如状态码转文字):
SELECT
order_id,
CASE status
WHEN 1 THEN '待付款'
WHEN 2 THEN '已发货'
WHEN 3 THEN '已完成'
ELSE '未知状态'
END AS status_text
FROM orders;
在聚合函数中优雅处理空值:
SELECT
AVG(CASE WHEN salary IS NULL THEN 0 ELSE salary END) AS avg_salary
FROM employees;
根据不同条件动态调整排序逻辑:
SELECT *
FROM products
ORDER BY
CASE
WHEN category = '电子' THEN price * 0.9 -- 电子产品打9折后排序
ELSE price
END DESC;
结合其他函数实现多层判断(如评分评级):
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;
CASE
语法通过合理使用 CASE
,可以实现 SQL 查询的逻辑复用和动态计算,是数据分析中不可或缺的工具。