7

下面是我拥有的存储过程的一部分,如果您能指出我为什么即使@DefaultID在执行 select 语句后为 null 时它也不会进入 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

4 回答 4

16

采用

IF @DefaultID IS NULL

代替IF @DefaultID =''

NULL''是两个不同的东西。

于 2012-11-22T12:23:18.150 回答
3

请检查使用

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

我猜你正在使用 MS Sql 服务器。

于 2012-11-22T12:21:58.943 回答
3

只需使用它:-

  IF(@DefaultID is NULL)
于 2012-11-22T12:23:38.760 回答
0
IF(len(@DefaultID) > 0)
 SET @ISDefault = '1'
ELSE
    SET @ISDefault = '0'
于 2012-11-22T12:25:50.540 回答