1. 概述 逻辑计算,判断某个特定条件为真还是假(TRUE/FALSE,布尔值),默认返回特定条件为真(TRUE)的数据。一般多用于数据映射、校验或者筛选。 2. 函数列表2.1. 基础逻辑判断用途 | 函数 | 示例 [No]列值分别为1,2,3,4,5 | 结果 | 且,满足全部条件 | AND | 筛选:[No] >1 AND [No] <=4 | 2, 3, 4 | 或,满足任一条件 | OR | 筛选:[No] <1 OR [No] >4 | 5 | 属于,判断表达式是否属于集合 | IN | 筛选:[No] IN (1,3,5,7,9) | 1, 3, 5 | 区间, 包含开始值和结束值 | BETWEEN AND | 筛选:[No] BETWEEN 2 AND 4 | 2, 3, 4 | 否,返回不符合表达式的数据 | NOT | 筛选:[No] NOT IN (1,3,5,7,9) | 2, 4 | 筛选:[No] NOT BETWEEN 2 AND 4 | 1, 5 | 条件判断 | IF | IF([No]>0 and [No]<=3,'1-3','3+') | 1-3, 1-3, 1-3, 3+, 3+ | CASE WHEN (更适合多条件判断) | CASE WHEN [No] between 1 and 2 THEN '1-2' WHEN [No] between 3 and 4 THEN '3-4' WHEN [No]>=5 THEN '5+' END
| 1-2, 1-2, 3-4, 3-4, 5+ | 字符串模糊匹配(配合通配符使用) | LIKE/ILIKE | 'guanBI' like '%BI' (区分大小写) 'guanBI' ilike '%bi' (不区分大小写) | true |
注意事项: 逻辑函数一般返回 TRUE/FALSE,但如果字段值为 NULL 时则返回 NULL,例如 NULL NOT IN (1,3,5,7,9) 返回结果为空(即NULL)。如果只想要返回 TRUE/FALSE,需要对 NULL 进行判断并处理,可参考下面列表函数。 2.2. 空值(NULL)判断函数用途 | 函数 | 示例 [expr1]: null; [expr2]: A; [expr3]: B | 结果 | 判断是否为 null 值 | isnull(expr); expr is null | isnull([expr1]); [expr2] is null | true false | 判断是否非 null 值 | isnotnull(expr); expr is not null | isnotnull([expr1]); [expr2] is not null | false true | 把 expr1 里的 null 值替换为 expr2 | ifnull(expr1, expr2) | ifnull([expr1],'C') | C | nvl(expr1, expr2) | nvl([expr1],'C') | C | 如果 expr1 不为 null 返回 expr2,否则返回 expr3 | nvl2(expr1, expr2, expr3) | nvl2([expr1],[expr2],[expr3]) | B | 返回第一个非 null 值的值 | coalesce(expr1, expr2, ...) | coalesce([expr1],[expr2],[expr3]) | A | 如果2个 expr 相同则返回 null,否则返回 expr1 | nullif(expr1, expr2) | nullif([expr2],[expr1]) | A | 判断两个值是否相等,两者都为null需返回true,有一个null返回false | equal_null(expr1, expr2) | equal_null([expr1],[expr2]) | false | expr1 <=> expr2 | [expr1]<=> null | true | 判断是否为空字符串 | expr='' expr <>'' | [expr1]='' ; [expr2]<>'' | null true |
|