2016-08-31 8 views
3

私は、グループ化された選択の例があります。ダイナミック句

SELECT cod, value, type 
FROM table 
GROUP BY cod, value, type 

私は結果を得る:

cod | value | type 
1 | 1000 | A 
1 | 570 | B 
2 | 2000 | A 
3 | 1500 | A 
3 | 200 | B 

しかし、唯一のcod = 1type = Aから値を返す必要があるために。希望する結果:

cod | value | type 
1 | 1000 | A 
2 | 2000 | A 
3 | 1500 | A 
3 | 200 | B 

私はWHERECASE文を考えるが、制限があり、正しく動作しません。私はそれをどうやってできるの?ここで

WHERE CASE WHEN cod = 1 THEN type = 'A' END 
+0

すべてのcod = 1に対して任意にタイプをAに設定したいのですか、type = Aおよびcod <> 1のデータを除外しますか? –

+0

'cod = 1'から' type = A'の値だけを取得します。 –

答えて

1
WHERE Type = CASE WHEN cod = 1 THEN 'A' else Type END 
+0

'= ''の間違った構文を返します –

+0

最初=または2番目または3番目? – artm

+0

2nd、 'THEN'の後 –

2

あなたは以下のとおりです。

SELECT cod, value, type 
FROM table 
WHERE cod != 1 OR type='A' 
GROUP BY cod, value, type 
0

もう一つの良いオプション - ここではない最良の方法が、役立つオプション。