更新时间:2022-08-12 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;