mssql sqlserver nullIf case应用举例说明


摘要:
下文通过举例分析nullif 和 case 实现数据相同比较的方法分享,如下所示:
实验环境:sql server 2008 R2


nullif功能:
对两个输入变量进行比较,如果变量相等,则返回null ,否则返回第一个变量
case 功能:
类似于其它编程语言的switch语句,使用条件对两个变量进行判断,然后返回相应的值

--例1:比较变量 @a 和 @b  是否相同
  declare @a int
  declare @b int
 
	set @b =88	
---@a为null @b为88
---由于不相等,则返回@a
select nullif(@a,@b) as [1]
set @b =null 
---由于相等,则返回null
select nullif(@a,@b)  as [2]
set @a =88
set @b =88
---由于相等,则返回null
select nullif(@a,@b)  as [3]
set @a =88
set @b =null
---由于不相等,则返回@a
select nullif(@a,@b)  as [4]
go
--例2:比较表中列infoA和infoB值是否相同,如果相等则返回infoA
   create table test
(infoA varchar(30),infoB varchar(30))

insert into test 
(infoA,infoB)values
('maomao365.com','maomao365.com'),
(null,'maomao365.com'),
(N'sql教程blog','maomao365.com'),
(N'sql教程blog',null)

select nullif(infoA,infoB) as [nullif],
case 
 when  infoA=infoB then null
 else infoA 
 end as [caseInfo]
from test 

go
truncate table test 
drop     table test