coalesce( expression [ ,...n ] )返回其参数中第一个非空表达式。express
Select coalesce(null,null,'1','2') //结果为 1
coalesce(expression1,...n) 与此 case函数等效:函数
CASE
WHEN (expression1 IS NOT NULL) THEN expression1
...
WHEN (expressionN IS NOT NULL) THEN expressionN
ELSE NULL
END
注意:
当第一个表达式为字符串且不能转化为整数时,若在后面的表达式中有整数,这样的语句是会报错的。
例如:code
Select COALESCE('a',null,'1',2) //这是错误的
这至关于blog
select
CASE
WHEN ('a' IS NOT NULL) THEN 'a'
WHEN (2 IS NOT NULL) THEN 2
ELSE NULL
END //会出现错误,由于系统没法将a转换为相应的整数
可是字符串
select
CASE
WHEN ('a' IS NOT NULL) THEN 'a'
WHEN (2 IS NOT NULL) THEN '2'
ELSE NULL
END //这是正确的
因此咱们在使用coalesce函数时,应该至关当心。
isnull( check_expression , replacement_value ) 使用指定的替换值替换 NULL。
replacement_value 必须是能够隐式转换为 check_expresssion 类型的类型。
在表stu中
io
select isnull(ssex,'p') from stu //若ssex列中有NULL值,那么返回p
nullif( expression , expression ) 若是两个指定的表达式相等,则返回空值,不然 NULLIF 返回第一个 expression 的值。class
select nullif(1,1) //结果为 NULL select nullif(1,2) //结果为 1