Tsql 或内部案件陈述

Tsql 或内部案件陈述,tsql,Tsql,试图找出如何在T-SQL中的case语句中合并OR 我基本上是在检查两件事,如果其中一件是真的,只需将它们视为0作为计数 COUNT(Case When (car[Weight] IS null) then 0 else car.CarKey OR When (car.BinNumber is null) then 0 else car.CarKey End) as Carkey 也尝试过这个,但语法是错误的 COUNT(Case When (car[We

试图找出如何在T-SQL中的case语句中合并OR

我基本上是在检查两件事,如果其中一件是真的,只需将它们视为0作为计数

COUNT(Case When (car[Weight] IS null) then 0 else car.CarKey 
           OR When (car.BinNumber is null) then 0 else car.CarKey 
      End) as Carkey
也尝试过这个,但语法是错误的

COUNT(Case When (car[Weight] IS null) then 0 
         else When (car.BinNumber is null) then 0 
         else car.CarKey 
      End) as Carkey
您可以通过以下方式使用或:

COUNT(Case 
        When (car.[Weight] IS null) or (car.BinNumber is null)
        then 0 
        else car.CarKey End) as Carkey
您可以通过以下方式使用或:

COUNT(Case 
        When (car.[Weight] IS null) or (car.BinNumber is null)
        then 0 
        else car.CarKey End) as Carkey

你的第二次尝试很接近,只需删除另一个

注意:如果您想计算没有空值的项目,那就不行了。零值仍然是一个值,因此它也将被计数。对不想计数的项目使用null:

COUNT(Case When (car[Weight] IS null) then null 
     When (car.BinNumber is null) then null 
     else car.CarKey 
  End) as Carkey
或者使用sum:


你的第二次尝试很接近,只需删除另一个

注意:如果您想计算没有空值的项目,那就不行了。零值仍然是一个值,因此它也将被计数。对不想计数的项目使用null:

COUNT(Case When (car[Weight] IS null) then null 
     When (car.BinNumber is null) then null 
     else car.CarKey 
  End) as Carkey
或者使用sum:


为便于将来参考,案例陈述不会以这种方式拆分。当。。。然后什么时候然后其他的终止为便于将来参考,案例陈述不会以这种方式拆分。当。。。然后什么时候然后其他的终止但是,这将计算0。这就是OP想要的吗?也许他想要SUMCASE…然后0或者1结束CarKey@GilM据推测,是的,这就是他们想要的。这将是OP的一个问题。但是,这将计入0。这就是OP想要的吗?也许他想要SUMCASE…然后0或者1结束CarKey@GilM据推测,是的,这就是他们想要的。这将是OP的一个问题。