2017-08-18 2 views
2

私はこれを間違っている可能性がありますが、ここでは私が思うところでどこにあるのかについて詳しく説明します。私はちょうど私がすべての検査値がNULLのことができればCASE式を作るために探していますすべてのNULLまたは少なくとも1つの値が存在する場合のケースステートメント

Test  ID  Value 
test_1 01  50 
test_2 01  NULL 
test_3 01  40/50 
test_1 02  NULL 
test_2 02  NULL 

概要:

は、私たちは、テーブルと呼びますテーブルを持っています少なくとも1つのテスト値に「はい」の値がある場合は「いいえ」です。

所望の出力:

ID Case 
01 Yes 
02 No 

現在のクエリ:

不適切な構文のキーワードの近くに

SELECT 
    ID 
    ,CASE WHEN t.test IN ('test_1','test_2','test_3') IS NOT NULL 
     THEN 'Yes' 
     ELSE 'No' END 
FROM table t 

エラーは ''。

集計を使用して
+0

@scsimonありがとうございます。どこで使うことができますか? – kazzi

答えて

2

....

declare @table table (test varchar(6), id int, value varchar(24)) 
insert into @table 
values 
('test_1','01','50'), 
('test_2','01',NULL), 
('test_3','01','40/50'), 
('test_1','02',NULL), 
('test_2','02',NULL) 

select 
    t.id 
    ,case when min(t.value) is null and max(t.value) is null then 'NO' else 'YES' end as [Case] 
from 
    @table t 
group by 
    t.id 

そして、本当に、あなたは一度だけ、それをチェックする必要があります。

select 
    t.id 
    ,case when max(t.value) is null then 'NO' else 'YES' end as [Case] 
from 
    @table t 
group by 
    t.id 
+0

私は読み取り専用アクセスしかないので、これは実際に新しいデータをテーブルに挿入しますか? – kazzi

+0

いいえ、@テーブルをテーブル名に置き換えてください。私はちょうどそれがどのように動作するかを示すいくつかのテストデータを作成しました。あなたが見ることができるように、INSERTまたはUPDATE文はありません.... – scsimon

+0

私はDeclareの下にInsertを見たので、 SELECT – kazzi

関連する問題