CASE
CASE 语句类似于编程语言中的 IF-THEN-ELSE 结构,允许你在查询中执行条件逻辑, 它使你能够根据条件返回特定值,从而使数据检索和操作更加动态。
语法
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
condition1,condition2,...:表达式的判断条件。result1,result2,...:满足相应条件时要返回的值。result:当没有条件满足时要返回的值(可选)。
示例
CASE 语句可以在各种子句中使用,例如 SELECT,WHERE,ORDER BY 和 GROUP BY。
在 SELECT 中使用 CASE
在 SELECT 子句中,你可以使用 CASE 语句根据条件创建新列。
请参阅查询数据指南中的示例。
你还可以将 CASE 与 SUM 等函数一起使用,以有条件地聚合数据。
例如,你可以计算状态码为 200 和 404 的日志总数:
SELECT
SUM(CASE WHEN status_code = '200' THEN 1 ELSE 0 END) AS status_200_count,
SUM(CASE WHEN status_code = '404' THEN 1 ELSE 0 END) AS status_404_count
FROM nginx_logs;