1. CASE()
1)说明:判断操作.
2)语法:
i. CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result …] [ELSE result] END
当value=compare_value时,返回result。
ii. CASE WHEN [condition] THEN result [WHEN [condition] THEN result …] [ELSE result] END
当第一个条件是满足的时候,返回result。
两者在都没有可满足的result时,返回的结果时ELSE语句后的结果,如果没有ELSE语句,则返回NULL.
3)实例:
4) Note:
case表达式的返回类型是所有返回值的兼容聚合类型,而且取决于使用它的上下文。如果在上下文中使用字符串,结果将返回为字符串。如果在上下文中使用数字,结果返回为十进制、实数或整数值。
2. IF()
1)说明:if/else 结构.
2)语法:
IF(expr1,expr2,expr3)
当expr1为true(expr1<>0 并且 expr1 <> NULL),if()返回结果为expr2,否则返回expr3。IF()返回的结果是数字还是字符串,取决于上下文中的使用。
3)实例:
4) Note:
如果expr2或expr3中只有一个为NULL,那么IF()函数的结果类型为不是NULL的那一个表达式。
3. IFNULL()
1)说明:NULL if/else 结构.
2)语法:
IFNULL(expr1,expr2)
如果expr1不是NULL,则结果返回expr1,否则返回expr2。IFNULL()返回的结果是数字还是字符串,取决于上下文中的使用。
3)实例:
4. NULLIF()
1)说明:如果expr1等于expr2,则返回NULL.
2)语法:
NULLIF(expr1,expr2)
如果expr1等于expr2,则结果返回NULL,否则返回expr1,和CASE WHEN expr1=expr2 THEN NULL ELSE expr1 END 相同。
3)实例: