跳到主要内容

条件函数(Conditional Functions)

本页面全面概述了 Databend 中的条件函数,按功能分类以便参考。

基本条件函数​

函数描述示例
IF / IFF根据条件返回值IF(1 > 0, 'yes', 'no') → 'yes'
CASE评估条件并返回匹配结果CASE WHEN 1 > 0 THEN 'yes' ELSE 'no' END → 'yes'
DECODE比较表达式与搜索值并返回结果DECODE(2, 1, 'one', 2, 'two', 'other') → 'two'
COALESCE返回第一个非 NULL 表达式COALESCE(NULL, 'hello', 'world') → 'hello'
NULLIF若两表达式相等则返回 NULL,否则返回第一个表达式NULLIF(5, 5) → NULL
IFNULL若第一个表达式不为 NULL 则返回该值,否则返回第二个IFNULL(NULL, 'default') → 'default'
NVL返回第一个非 NULL 表达式NVL(NULL, 'default') → 'default'
NVL2若 expr1 不为 NULL 则返回 expr2,否则返回 expr3NVL2('value', 'not null', 'is null') → 'not null'

比较函数​

函数描述示例
GREATEST从列表中返回最大值GREATEST(1, 5, 3) → 5
LEAST从列表中返回最小值LEAST(1, 5, 3) → 1
GREATEST_IGNORE_NULLS返回最大的非 NULL 值GREATEST_IGNORE_NULLS(NULL, 5, 3) → 5
LEAST_IGNORE_NULLS返回最小的非 NULL 值LEAST_IGNORE_NULLS(NULL, 5, 3) → 3
BETWEEN检查值是否在指定范围内5 BETWEEN 1 AND 10 → true
IN检查值是否匹配列表中的任意值5 IN (1, 5, 10) → true

NULL 和错误处理函数​

函数描述示例
IS_NULL检查值是否为 NULLIS_NULL(NULL) → true
IS_NOT_NULL检查值是否不为 NULLIS_NOT_NULL('value') → true
IS_DISTINCT_FROM检查两值是否不同,将 NULL 视为相同值NULL IS DISTINCT FROM 0 → true
IS_ERROR检查表达式计算是否导致错误IS_ERROR(1/0) → true
IS_NOT_ERROR检查表达式计算是否未导致错误IS_NOT_ERROR(1/1) → true
ERROR_OR若第一个表达式无错误则返回该值,否则返回第二个ERROR_OR(1/0, 0) → 0
欢迎体验 Databend Cloud

基于 Rust + 对象存储构建的新一代多模态数仓,一个平台即可进行 BI、向量、全文检索及地理空间分析。

支持标准 SQL,自动弹性伸缩,助您快速构建现代化数据平台。

注册即领 ¥200 代金券。

注册体验