更新时间:2022-02-22 GMT+08:00
条件表达式
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;
|
父主题: 流作业SQL语法