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;