我已經在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