tencent cloud

文档反馈

条件表达式

最后更新时间:2024-01-22 10:52:48
    本文介绍条件表达式的语法和示例。
    表达式
    语法
    说明
    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 语法

    CASE WHEN 语法用于对数据进行归类。

    语法

    CASE WHEN condition1 THEN result1
    [WHEN condition2 THEN result2]
    [ELSE result3]
    END

    参数说明

    参数
    说明
    condition
    条件表达式。
    result
    返回结果。

    示例

    示例1

    http_user_agent 字段值中提取浏览器信息,归为 Chrome、Safari 和 unknown 三种类型并计算三种类型对应的访问 PV。
    * | 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

    示例2

    统计不同请求时间的分布情况。
    * | 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 语法

    IF 语法用于对数据进行归类,类似于 CASE WHEN 表达式。

    语法

    如果 condition 为 true,则返回 result1,否则返回 null。
    IF(condition, result1)
    如果 condition 为 true,则返回 result1,否则返回 result2。
    IF(condition, result1, result2)

    参数说明

    参数
    说明
    condition
    条件表达式。
    result
    返回结果。

    示例

    计算状态码为200的请求占所有请求的比例。
    * | SELECT sum(IF(status = 200, 1, 0)) * 1.0 / count(*) AS status_200_percentag

    NULLIF 表达式

    NULLIF 表达式用于比较两个表达式的值是否相等。如果相等,则返回 null,否则返回第一个表达式的值。

    语法

    NULLIF(expression1, expression2)

    参数说明

    参数
    说明
    expression
    任何有效的标量表达式。

    示例

    判断 server_addrhttp_host 两个字段的值是否相同。当不相同时,返回 server_addr 字段的值。
    * | SELECT NULLIF(server_addr,http_host)

    TRY 表达式

    TRY 表达式用于捕获异常信息,使得系统继续执行查询和分析操作。

    语法

    TRY(expression)

    参数说明

    参数
    说明
    expression
    任何类型的表达式。

    示例

    当执行 regexp_extract 函数发生异常时,try函数会捕获异常信息并继续查询和分析操作,返回查询和分析结果。
    * | SELECT TRY(regexp_extract(uri, './(index.)', 1)) AS file, count(*) AS count GROUP BY file

    COALESCE 表达式

    COALESCE 表达式用于获取多个表达式中的第一个非 NULL 值。

    语法

    COALESCE(expression1, expression2...)

    参数说明

    参数
    说明
    expression
    任何有效的标量表达式。

    示例

    * | select COALESCE(null, 'test')
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持