SQL NULL条件

时间:2011-12-02 19:14:29

标签: sql

我是开发新手。在sql中我写了一个存储过程和 它工作正常,但我只是想确保它以正确的方式完成。

这里我在sp中使用IF语句来检查表中的日期列是否为NULL:

  if ((select sdate 
       from tbla 
         where id='3') = Null)
begin
  some query
end

这适用于所有情况还是我还需要检查''(空)?

3 个答案:

答案 0 :(得分:11)

在SQL中,null不等于任何东西,包括其他空值。您需要使用is null代替=操作。

答案 1 :(得分:4)

Empty和NULL不是一回事,所以你需要分别检查一个空字符串。您还应该使用is null而不是= null来检查列是否为空。

答案 2 :(得分:3)

如果要在某些内容为null时显示其他表达式,Coalesce可能就是您想要的。

Select CASE When (null = null) Then 1 Else 0 END

结果:0

Select CASE When (null is null) Then 1 Else 0 END

结果:1​​

Select null + 'soemthing'

结果:null

Select Coalesce(null, 'DefaultValueIfNull')

结果:DefaultValueIfNull

仅当lastname不为null时才附加空格和姓氏:

select FirstName + coalesce(' ' + LastName, '') From People

仅当lastname不为null时才附加空格和姓氏,并处理空LastName:

select FirstName + coalesce(' ' + CASE LastName When '' Then null Else LastName END, '') From People