CASE WHEN
是 MySQL 中的条件表达式,用于在查询结果中根据条件返回不同的值。它类似于编程语言中的 if-else
语句,可以在 SQL 查询中实现复杂的逻辑判断。
CASE
WHEN condition1 THEN result1
[WHEN condition2 THEN result2]
...
[ELSE result]
END
CASE 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;
希望这些信息对你有所帮助!如果有更多具体问题,欢迎继续提问。
领取专属 10元无门槛券
手把手带您无忧上云