2012-03-28 84 views
-1

我已經在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,爲什麼它甚至進入開始結束......這不應該。

+3

它符合'@ID IS NOT NULL'部分。 'True或x'等於'true'。猜測你可能想要'和',但只要'(@ID <> 0)'就足夠了,就好像'@ID是NULL'那麼不管'真'。 – 2012-03-28 15:20:05

回答

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 
0

@ID is not Null所以它符合你的OR聲明一半的要求更好的運氣。如果您希望它不打印,那麼您應該使用AND

0

你的第一個條件@ID iS NOT NULL是真的,所以它進入並打印語句。

1

最有可能的意思是AND而不是OR。那麼它應該有你期望的結果。

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

由於@ID不爲空,它會進入開始結束塊。