条件表达式
CASE表达式
语法格式
1 2 3 |
CASE value WHEN value1 [, value11 ]* THEN result1 [ WHEN valueN [, valueN1 ]* THEN resultN ]* [ ELSE resultZ ] END |
或
1 2 3 |
CASE WHEN condition1 THEN result1 [ WHEN conditionN THEN resultN ]* [ ELSE resultZ ] END |
语法说明
- 当value值为value1则返回result1,不满足则返回resultZ,若没有else语句,则返回null。
- 当condition1为true时返回result1,不满足则返回resultZ,若没有else语句,则返回null。
注意事项
- 所有result的类型都必须一致。
- 所有condition类型都必须是布尔类型。
- 当没有满足的分支时,若指定else语句,则返回else的值,若没有else语句,则返回null。
示例
当units等于5时返回1,否则返回0。
示例1:
1
|
insert into temp SELECT CASE units WHEN 5 THEN 1 ELSE 0 END FROM Orders; |
示例2:
1
|
insert into temp SELECT CASE WHEN units = 5 THEN 1 ELSE 0 END FROM Orders; |
NULLIF表达式
语法格式
1
|
NULLIF(value, value) |
语法说明
如果值相同,则返回NULL。 例如,NULLIF(5,5)返回NULL; NULLIF(5,0)返回5。
注意事项
无。
示例
当units等于3时返回null,否则返回units。
1
|
insert into temp SELECT NULLIF(units, 3) FROM Orders; |
COALESCE表达式
语法格式
1
|
COALESCE(value, value [, value ]* ) |
语法说明
返回从左到右第一个不为NULL的参数的值。
注意事项
所有value的类型都必须一致。
示例
返回5。
1
|
insert into temp SELECT COALESCE(NULL, 5) FROM Orders; |