2

T-SQL の case ステートメントに OR を組み込む方法を見つけようとしています。

私は基本的に 2 つのことをチェックしています。どちらかが true の場合は、カウントが 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
4

2 に答える 2

3

OR次の方法で使用できます。

COUNT(Case 
        When (car.[Weight] IS null) or (car.BinNumber is null)
        then 0 
        else car.CarKey End) as Carkey
于 2012-09-26T19:26:45.287 に答える
1

2 回目の試行で接近しました。1 つ削除してくださいelse

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

注: null 値のない項目を数えたい場合は、それはできません。ゼロの値も値なので、カウントされます。nullカウントしたくないアイテムに使用します。

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

またはsum代わりに使用します:

SUM(Case When (car[Weight] IS null) then 0 
     When (car.BinNumber is null) then 0 
     else 1
  End) as Carkey
于 2012-09-26T19:32:09.457 に答える