全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
日志服务

CASE WHEN和IF分支语法

更新时间:2018-03-01 16:02:37

CASE WHEN语法

支持CASE WHEN语法,对连续数据进行归类。

例如,从http_user_agent中提取信息,归类成Android和iOS两种类型:

  1. SELECT
  2. CASE
  3. WHEN http_user_agent like '%android%' then 'android'
  4. WHEN http_user_agent like '%ios%' then 'ios'
  5. ELSE 'unknown' END
  6. as http_user_agent,
  7. count(1) as pv
  8. group by http_user_agent

样例

  • 计算状态码为200的请求占总体请求的比例:
  1. * | SELECT
  2. sum(
  3. CASE
  4. WHEN status =200 then 1
  5. ELSE 0 end
  6. ) *1.0 / count(1) as status_200_percentage
  • 统计不同延时区间的分布:
  1. * | SELECT `
  2. CASE
  3. WHEN latency < 10 then 's10'
  4. WHEN latency < 100 then 's100'
  5. WHEN latency < 1000 then 's1000'
  6. WHEN latency < 10000 then 's10000'
  7. else 's_large' end
  8. as latency_slot,
  9. count(1) as pv
  10. group by latency_slot

IF语法

if语法逻辑上等同于CASE WHEN语法。

  1. CASE
  2. WHEN condition THEN true_value
  3. [ ELSE false_value ]
  4. END
  • if(condition, true_value)

    • 如果condition是true,则返回true_value这一列,否则返回null。
  • if(condition, true_value, false_value)

    • 如果condition是true,则返回true_value这一列,否则返回false_value这一列。

COALESCE语法

coalesce 返回多个列的第一个非Null值。

  1. coalesce(value1, value2[, ...])

NULLIF 语法

如果value1和value2相等,返回null,否则返回value1。

  1. nullif(value1, value2)

TRY 语法

try语法可以捕获一些底层的异常,例如除0错误,返回null值。

  1. try(expression)
本文导读目录