SQL Server函数之空值管理

发布时间:2019-11-08  栏目:MySQL  评论:0 Comments

coalesce( expression [ ,…n ] 卡塔尔重临其参数中首先个非空表达式。

数据完整性是其余数据库系统要确认保障的根本。不管系统布置得有多好,空数据值的标题三番一回存在。本文研商了在SQL
Server中拍卖那么些值时涉及的3个难题:计数、使用空表值以至外键管理。

 

用COUNT(*)管理空值

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

 

注意:
当第二个表明式为字符串且不能够转变为整数时,若在末端的表明式中有整数,那样的言辞是会报错的。
例如:

Select COALESCE(‘a’,null,’1′,2) //那是张冠李戴的

这一定于

 

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中
图片 1

select isnull(ssex,’p’) from stu //若ssex列中有NULL值,那么再次来到p

nullif( expression , expression
) 要是八个钦定的表明式相等,则赶回空值,不然 NULLIF
再次来到第八个 expression 的值。

select nullif(1,1) //结果为 NULL
select nullif(1,2) //结果为 1

留下评论

网站地图xml地图