CASE WHEN 是 MySQL 中的条件表达式,用于在查询结果中根据条件返回不同的值。它类似于编程语言中的 if-else 语句,可以在 SQL 查询中实现复杂的逻辑判断。
CASE
WHEN condition1 THEN result1
[WHEN condition2 THEN result2]
...
[ELSE result]
ENDCASE WHEN 可以使 SQL 查询更加直观和易读。CASE WHEN 通常具有更好的性能。CASE 表达式:CASE 表达式:CASE 表达式:CASE 表达式:CASE WHEN 进行条件统计。CASE WHEN 进行条件统计。CASE WHEN 表达式可能导致查询性能下降。CASE WHEN 表达式,避免在 CASE WHEN 中进行复杂的计算或子查询。可以考虑使用临时表或视图来优化查询。CASE WHEN 返回的结果类型与目标列类型不匹配。CASE WHEN 返回的结果类型与目标列类型一致。可以使用 CAST 或 CONVERT 函数进行类型转换。CASE WHEN 中的条件逻辑错误,导致返回的结果不符合预期。CASE WHEN 中的条件逻辑,确保每个条件都能正确判断并返回预期的结果。-- 数据转换示例
SELECT
id,
CASE status
WHEN 'active' THEN '启用'
WHEN 'inactive' THEN '禁用'
ELSE '未知'
END AS status_text
FROM users;
-- 条件聚合示例
SELECT
department,
SUM(CASE WHEN salary > 5000 THEN 1 ELSE 0 END) AS high_salary_count
FROM employees
GROUP BY department;
-- 行转列示例
SELECT
user_id,
MAX(CASE WHEN order_type = 'purchase' THEN amount END) AS purchase_amount,
MAX(CASE WHEN order_type = 'refund' THEN amount END) AS refund_amount
FROM orders
GROUP BY user_id;希望这些信息对你有所帮助!如果有更多具体问题,欢迎继续提问。
企业创新在线学堂
算法大赛
"中小企业”在线学堂
停课不停学 腾讯教育在行动第一期
“中小企业”在线学堂
云+社区沙龙online[数据工匠]
腾讯云架构师城市沙龙
腾讯云架构师城市沙龙