2016-09-26 8 views
-1

sqlのcase文でdistinctを使用する方法はありますか?例えばケース条件SQLでdistinctを使用

-

CASE WHEN col1 = 'XYZ' and DISTINCT(col1,col2) 
THEN 'Do_This' 
ELSE 'Do_That' 
END 

残念ながら、上記のケースステートメント内部DISTINCTの使用は、エラーをスロー。

私はpostgres/redshift SQLを使用しています。

+1

そのクエリの目標は何ですか? – Beginner

+2

そのクエリは意味をなさない –

+1

'CASE'は単に*スカラー値を返す*式*です。手続き型言語のような制御フローには使用できません。また、 'DISTINCT'は述語として使用できません。 'SELECT'文で使用されるとき、' DISTINCT'は重複行をフィルタリングします。 –

答えて

0

まず、あなたの目的ははっきりしていませんが、私の前提は、col1の値に応じてDO_ThisまたはDo_Thatにしたいということです。

SELECT 
CASE WHEN COL1 = 'XYZ' 
THEN 'DO_THIS' 
ELSE 'DO_THAT' 
END 
FROM 
(
SELECT 
COL1, COL2 
FROM YOUR_TABLE 
GROUP BY COL1, COL2 
)