SQL开始结束打印

SQL开始结束打印,sql,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,为什么它甚至会进入开始-结束。。。不应该 使用和会让你更幸运 @ID不为Null,因此它满足OR语句一半的要求。如果您不想让它出现在打印中,那么应该使用AN

我在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,为什么它甚至会进入开始-结束。。。不应该

使用和会让你更幸运


@ID不为Null,因此它满足OR语句一半的要求。如果您不想让它出现在打印中,那么应该使用AND。

您的第一个条件@ID iS not NULL为true,因此它将进入内部并打印语句。

很可能是有意义的AND not OR。那么它应该有你期望的结果

IF (@ID IS NOT NULL OR @ID <> 0)
由于@ID不为null,它进入开始-结束块。

它符合@ID不为null部分。真或x等于真。我猜您可能想要,但只要@ID 0足够,就好像@ID为NULL一样,这无论如何都不是真的。
IF (@ID IS NOT NULL OR @ID <> 0)