Skip to main content

条件函数(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 10true
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 0true
IS_ERROR检查表达式计算是否导致错误IS_ERROR(1/0)true
IS_NOT_ERROR检查表达式计算是否未导致错误IS_NOT_ERROR(1/1)true
ERROR_OR若第一个表达式无错误则返回该值,否则返回第二个ERROR_OR(1/0, 0)0
Explore Databend Cloud for FREE
Low-cost
Fast Analytics
Easy Data Ingestion
Elastic Scaling
Try it today