日期:2014-05-18  浏览次数:20524 次

一个极简单的问题,请游泳的鱼回答下
sql中
if @aa is null
这个代表什么意思


------解决方案--------------------
定义了一个变量@aa,当然也可能是函数或存储过程中传入的一个参数.
总而言之,言而总之,它就是一个变量,不过,无从可知它是个什么类型的变量

if 这个变量 is null

就是看这个变量是否为空值 即 null值.

比如
declare @a int
select @a
结果就显示null
因为只定义了变量,未初始化

declare @a int
select @a=1
select @a
结果显示1,它值为1,当然不是 null

declare @a varchar
select @a
--null

declare @a varchar
set @a=''
select @a
--显示 空. 这里的空是一个空字串,值不是null


declare @a int
select @a=1
select @a=(select max(aaa) from (select 1 aaa union all select 2) a where aaa>3)
select @a
这里定义了int型变量@a , 再给值1, 再次从查询中赋值,查询无结果集,则@a被赋为null

null值的检测不能使用 "=" 运算符,要用 is null检测

declare @a int
select 1 where @a is null
union all
select 0 where @a is not null
当@a是null时显示1,否则显示0