tencent cloud

日志服务

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
地域和访问域名
规格与限制
基本概念
购买指南
计费概述
产品定价
按量计费(后付费)
欠费说明
清理日志服务资源
成本优化
常见问题
快速入门
一分钟入门指南
入门指南
使用 Demo 日志快速体验 CLS
操作指南
资源管理
权限管理
日志采集
指标采集
日志存储
指标存储
检索分析(日志主题)
检索分析(指标主题)
仪表盘
数据处理
投递与消费
监控告警
云产品中心
DataSight 独立控制台
历史文档
实践教程
日志采集
检索分析
仪表盘
监控告警
投递和消费
成本优化
开发者指南
通过 iframe 内嵌 CLS(旧方案)
通过 Grafana 使用 CLS
API 文档
History
Introduction
API Category
Making API Requests
Topic Management APIs
Log Set Management APIs
Index APIs
Topic Partition APIs
Machine Group APIs
Collection Configuration APIs
Log APIs
Metric APIs
Alarm Policy APIs
Data Processing APIs
Kafka Protocol Consumption APIs
CKafka Shipping Task APIs
Kafka Data Subscription APIs
COS Shipping Task APIs
SCF Delivery Task APIs
Scheduled SQL Analysis APIs
COS Data Import Task APIs
Data Types
Error Codes
常见问题
健康监测问题解释
采集相关
检索分析相关
其他问题
服务等级协议
CLS 政策
隐私协议
数据处理和安全协议
联系我们
词汇表

条件表达式

PDF
聚焦模式
字号
最后更新时间: 2026-01-07 15:39:44
本文介绍条件表达式的语法和示例。
表达式
语法
说明
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')


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈