SQL空条件

SQL空条件,sql,Sql,我对发展一无所知。在sql中,我编写了一个存储过程和 它工作正常,但我只是想确保它是以正确的方式完成的 在这里,我使用sp中的IF语句检查表中的日期列是否为NULL: if ((select sdate from tbla where id='3') = Null) begin some query end 这是否适用于所有情况,还是我也需要检查“”(空)?在SQL中,null不等于任何值,包括其他null。您需要使用is null而不是=操作。Em

我对发展一无所知。在sql中,我编写了一个存储过程和 它工作正常,但我只是想确保它是以正确的方式完成的

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

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

这是否适用于所有情况,还是我也需要检查“”(空)?

在SQL中,null不等于任何值,包括其他null。您需要使用
is null
而不是
=
操作。

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

如果您希望在某个值为null时显示其他表达式,则可以使用Coalesce

选择CASE When(null=null)然后选择1 Else 0 END

结果:0

选择CASE When(null为null)然后选择1 Else 0 END

结果:1

选择null+“soemthing”

结果:空

选择合并(null,'DefaultValueIfNull')

结果:DefaultValueIfNull

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

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

仅当lastname不为null时才追加空格和lastname,并处理空lastname:


select FirstName+coalesce(“”+CASE LastName When“”,然后null Else LastName END“”)取决于您的数据库-一些数据库将“empty”和
null视为等效项-其他数据库则不如此。所以,为了对您的情况得到一个合理的答案,我们需要知道您正在使用的数据库系统及其版本。“SQL”只是结构化查询语言,它不是一个数据库系统……可能是