SQL开始结束打印

时间:2012-03-28 15:18:42

标签: sql

我在sql server 2008中有以下tsql代码:

    declare @ID INT  
    SET @ID = 0
    IF (@ID IS NOT NULL OR @ID <> 0) 
    begin
      print 'ID is not 0 or null'
    end

由于@ID为0,为什么它甚至进入了开始端...它不应该。

5 个答案:

答案 0 :(得分:4)

使用and而不是

,你有更好的运气
declare @ID INT  
    SET @ID = 0
    IF (@ID IS NOT NULL AND @ID <> 0) 
    begin
      print 'ID is not 0 or null'
    end

答案 1 :(得分:2)

很可能是意义为AND而非OR的情况。然后它应该有你期望的结果。

答案 2 :(得分:0)

@ID is not Null因此它符合OR声明的一半要求。如果您希望它不打印,那么您应该使用AND

答案 3 :(得分:0)

你的第一个条件是@ID iS NOT NULL,所以它进入并打印语句。

答案 4 :(得分:0)

IF (@ID IS NOT NULL OR @ID <> 0)

由于@ID不为null,因此它进入了开始结束块。