2016-11-30 5 views
-4

複数のケースを1行に追加したいと思います。つまり、次の例では、最初の項目がNOT NULLで、2番目の項目が1に等しい場合、出力は1以外の0になります。どのようにすればいいですか?複数のケースをSQLに追加するには

MatchbyCatalog= (case when ISNULL(pc.ProductID,0) and tc.RawMatch=1) then 1 else 0 end) 
+1

サンプルデータと期待される結果を示してください。 [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を向上させ、より良い回答を得る方法を学ぼう。 \t [**最小限の完全かつ検証可能な例を作成する方法**](http://stackoverflow.com/help/mcve) –

+0

いいえ、それは不完全なので動作しません。最初の項目がnullでなく、2番目の項目が1の場合、出力は1になると考えています。 –

答えて

2

これは何ですか?

CASE WHEN pc.ProductID IS NULL and tc.RawMatch=1 THEN 1 ELSE 0 END 

あなたはそれがNULLだ場合、それは条件ではない値を置き換える機能だ、ISNULL()を誤解。あなたが探していたのですIS NULL

0

これだけです。あなたは両方を言うとき

MatchbyCatalog= (case when ISNULL(pc.ProductID,0)=1 and tc.RawMatch=1 then 1 else 0 end) 
-2
case when {Condition} then {result} 
     When {Condition} then {result} 
     Else {result} 
+1

コードを公開しないでください。また、コードが何をしているのか説明してください。 –

+0

@JonathanMee私たちは何をすればいいのですか?その自明なコード –

-1

は、私はあなたが私はあなたが私が推測する必要が全体のSQLクエリをしているしていないpc.ProductIDとtc.RawMatch ... を意味すると思います。 あなたは複数のソリューションがあります。

MatchbyCatalog =(ケースISNULL(pc.ProductID、:あなたはpc.ProductId = 1とtc.RawMatch = 1その後、他の1 0書いている

  1. ほぼSSを0 1)= 1、tc.RawMatch = 1)then 1 else 0 end)

  2. また、トリックを使用することもできます:1 * 1は1と1 * 0 = 0でなければなりません。もしtc.Rawmatch値0または1のブール値のソートです)。

    MatchbyCatalog = ISNULL(pc.Produc tID、0)* tc.RawMatch

関連する問題