Firebird数据库
Firebird数据库语言参考-条件函数
2023-09-14 15:17:00


适用于: DSQL, PSQL
语法:
       COALESCE (exp1, exp2 ...expN)

 

表 8.63.COALESCE函数参数

 

说明:COALESCE 函数接受两个或多个参数,并返回第一个非 NULL 的值参数。如果所有参数的计算结果都为 NULL,则结果为 NULL。
结果类型:取决于输入。

 

示例:本示例从“Persons”表中选取"Nickname"。如果它恰好为 NULL,则继续"FirstName"。如果这也是 NULL,则使用“'Mr./Mrs.'”。最后,它添加了"LastName"。总而言之,它试图使用 全部可用数据尽可能用于组成非正式的"FullName"。请注意,此方案仅在以下情况下有效

 

缺少"Nickname"和"FirstName"实际上是 NULL:如果其中一个是空字符串,COALESCE 将愉快地将其返回给调用者。

select
 coalesce (Nickname, FirstName, 'Mr./Mrs.') || ' ' || LastName
 as FullName
 from Persons

 

See also: IIF, NULLIF, CAST

 


适用于: DSQL, PSQL
语法:
        DECODE(testexpr,
                      expr1, result1
                      expr2, result2 …]
                      [, defaultresult])
 
相当于 CASE 构造:
         CASE testexpr
                  WHEN expr1 THEN result1
                  [WHEN expr2 THEN result2 …]
                 [ELSE defaultresult]
          END
 
表 8.64. DECODE 函数参数
参数说明

testexpr 与表达式  expr1,expr2 ... exprN 进行比较的任何兼容类型的表达式,

expr1, expr2, ...exprN 任何兼容类型的表达式,与表达式进行比较
result1, result2, … resultN  任何类型的返回值
defaultresult 在不满足任何条件时返回的表达式
结果类型:变化
描述:DECODE 是所谓的“simple CASE”构造的快捷方式,其中给定的表达式是与许多其他表达式相比,直到找到匹配项。结果由列出的值决定,在匹配表达式之后。如果未找到匹配项,则返回默认结果(如果存在)。否则,NULL被返回。

谨慎
匹配是用“=”运算符完成的,所以如果为 NULL,它不会匹配任何 s,而不是即使是那些为NULL的。
例:

select name,
 age,
 decode( upper(sex),
 'M', 'Male',
 'F', 'Female',
 'Unknown' ),
 religion
 from people

 

See also: CASE, Simple CASE

 


适用于: DSQL, PSQL
语法:
IIF (condition, ResultT, ResultF)
 
表 8.65. IIF 函数参数
参数说明
condition 一个true/false值表达式
resultT 条件为 true 时返回的值
resultF 条件为 false 时返回的值
结果类型:取决于输入。
描述:IIF 采用三个参数。如果第一个参数的计算结果为 true,则返回第二个参数;否则第三个是返回。

•IIF可以比作类C语言中的三元“?:”运算符。
例:
select iif( sex = 'M', 'Sir', 'Madam' ) from Customers
备注:
IIF(Cond, Result1, Result2) 是“CASE WHEN Cond THEN Result1 ELSE Result2 END”的快捷方式。

 

See also: CASE, DECODE

 


适用于: DSQL, PSQL
语法:
MAXVALUE (expr1 [, ... ,exprN ])
表 8.66. MAXVALUE 函数参数
参数 说明
expr1 … exprN 兼容类型的表达式列表
结果类型: 因输入而异 - 结果将与列表中的第一个表达式具有相同的数据类型()。
说明:返回数字、字符串或日期/时间表达式列表中的最大值。此函数完全支持任何长度和字符集的文本 BLOB。
• 如果一个或多个表达式解析为 NULL,则 MAXVALUE 返回 NULL。此行为不同于聚合函数最大值MAX.
例:
SELECT MAXVALUE(PRICE_1, PRICE_2) AS PRICE
 FROM PRICELIST
 
See also: MINVALUE()

 


适用于: DSQL, PSQL
语法:
MINVALUE (expr1 [, ... , exprN ])
表8.67. MINVALUE 函数参数
参数 说明
expr1 … exprN 兼容类型的表达式列表
结果类型: 因输入而异 - 结果将与列表中的第一个表达式具有相同的数据类型()。
说明:返回数字、字符串或日期/时间表达式列表中的最小值。此函数完全支持任何长度和字符集的文本 BLOB。
• 如果一个或多个表达式解析为 NULL,则 MINVALUE 返回 NULL。此行为不同于聚合函数最小值MIN.
例:

SELECT MINVALUE(PRICE_1, PRICE_2) AS PRICE
 FROM PRICELIST
 
See also: MAXVALUE

 


适用于: DSQL, PSQL
语法:
NULLIF (, )
表8.68. NULLIF 函数参数
参数 说明
exp1 表达式
exp2 同兼容类型的表达式
描述:NULLIF返回第一个参数的值,除非它等于第二个参数。在这种情况下,为NULL返回。

结果类型:取决于输入。
例:
select avg( nullif(Weight, -1) ) from FatPeople

这将返回FatPeople中列出的人的平均体重,不包括那些权重体-1的人。因为AVG跳过NULL数据。假设-1表示该表中的“未知体重”。普通AVG(Weight)将包括-1体重,从而扭曲结果。

See also: COALESCE, DECODE, IIF, CASE

 

本文档中文版由海钛瑞OA办公系统研发团队翻译制作,转载请在开始处标明来自于http://www.hitai.com.欢迎交流。