下面是我所拥有的存储过程的一部分,如果你能指出我为什么即使@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'
答案 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'