SQL存储过程变量null检查

时间:2012-11-22 12:20:46

标签: sql stored-procedures

下面是我所拥有的存储过程的一部分,如果你能指出我为什么即使@DefaultID在执行select语句后它为空,它也不会进入if条件,这将是非常有帮助的,是否有不同的方法我必须遵循以将值分配给@DefaultID,以便它可用于空检查。

提前谢谢。

DECLARE @DefaultID varchar(25)
DECLARE @ISDefault varchar(1)

SELECT @DefaultID = (SELECT TABLE1.DEFID as DEFID
                     FROM TABLE1
                     WHERE TABLE1.ID = '123')

IF (@DefaultID = '')
    SET @ISDefault = '1'
ELSE
    SET @ISDefault = '0'

4 个答案:

答案 0 :(得分:10)

使用

IF @DefaultID IS NULL

而不是IF @DefaultID =''

NULL''是两回事。

答案 1 :(得分:2)

请使用

查看

IF ISNULL(@DefaultID, '') = ''代替IF(@DefaultID = '')

我猜您使用的是MS Sql服务器。

答案 2 :(得分:2)

只需使用: -

  IF(@DefaultID is NULL)

答案 3 :(得分:0)

IF(len(@DefaultID) > 0)
 SET @ISDefault = '1'
ELSE
    SET @ISDefault = '0'