我在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,为什么它甚至进入了开始端...它不应该。
答案 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,因此它进入了开始结束块。