我已经在SQL Server 2008下面的TSQL代码:SQL年底开始打印
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,为什么它甚至进入开始结束......这不应该。
我已经在SQL Server 2008下面的TSQL代码:SQL年底开始打印
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,为什么它甚至进入开始结束......这不应该。
你必须使用and
代替
declare @ID INT
SET @ID = 0
IF (@ID IS NOT NULL AND @ID <> 0)
begin
print 'ID is not 0 or null'
end
的@ID is not Null
所以它符合你的OR
声明一半的要求更好的运气。如果您希望它不打印,那么您应该使用AND
。
你的第一个条件@ID iS NOT NULL是真的,所以它进入并打印语句。
最有可能的意思是AND
而不是OR
。那么它应该有你期望的结果。
IF (@ID IS NOT NULL OR @ID <> 0)
由于@ID不为空,它会进入开始结束块。
它符合'@ID IS NOT NULL'部分。 'True或x'等于'true'。猜测你可能想要'和',但只要'(@ID <> 0)'就足够了,就好像'@ID是NULL'那么不管'真'。 – 2012-03-28 15:20:05