表达式 | 语法 | 说明 |
CASE WHEN condition1 THEN result1 [WHEN condition2 THEN result2] [ELSE result3] END | 过条件判断,对数据进行归类。 | |
IF(condition, result1) | 如果 condition 为 true,则返回 result1,否则返回 null。 | |
| IF(condition, result1, result2) | 如果 condition 为 true,则返回 result1,否则返回 result2。 |
NULLIF(expression1, expression2) | 比较两个表达式的值是否相等。如果相等,则返回 null,否则返回第一个表达式的值。 | |
TRY(expression) | 捕获异常信息,使得系统继续执行查询和分析操作。 | |
COALESCE(expression1, expression2...) | 获取多个表达式中的第一个非 NULL 值。 |
CASE WHEN condition1 THEN result1[WHEN condition2 THEN result2][ELSE result3]END
参数 | 说明 |
condition | 条件表达式。 |
result | 返回结果。 |
* | SELECT CASE WHEN http_user_agent like '%Chrome%' then 'Chrome' WHEN http_user_agent like '%Safari%' then 'Safari' ELSE 'unknown' END AS http_user_agent, count(*) AS pv GROUP BY http_user_agent
* | SELECT CASE WHEN request_time < 0.001 then 't0.001' WHEN request_time < 0.01 then 't0.01' WHEN request_time < 0.1 then 't0.1' WHEN request_time < 1 then 't1' ELSE 'overtime' END AS request_time, count(*) AS pv GROUP BY request_time
IF(condition, result1)
IF(condition, result1, result2)
参数 | 说明 |
condition | 条件表达式。 |
result | 返回结果。 |
* | SELECT sum(IF(status = 200, 1, 0)) * 1.0 / count(*) AS status_200_percentag
NULLIF(expression1, expression2)
参数 | 说明 |
expression | 任何有效的标量表达式。 |
* | SELECT NULLIF(server_addr,http_host)
TRY(expression)
参数 | 说明 |
expression | 任何类型的表达式。 |
* | SELECT TRY(regexp_extract(uri, './(index.)', 1)) AS file, count(*) AS count GROUP BY file
COALESCE(expression1, expression2...)
参数 | 说明 |
expression | 任何有效的标量表达式。 |
* | select COALESCE(null, 'test')
本页内容是否解决了您的问题?