CASEステートメントを使用したpostgresクエリを作成しようとしています。クエリは次のとおりです。
SELECT "State" AS x, count("Age Group") AS y from test.smp_state_survey where "State" IN
(CASE
WHEN 'State' = 'State' THEN 'State 1','State 2','State 3'
WHEN 'State' = 'District' THEN 'State 1'
END)
group by x ORDER BY x,y
上記のクエリは、構文エラーを示しています'State' = 'State'
一方、以下のクエリを実行すると、適切な結果が得られます。
SELECT "State" AS x, count("Age Group") AS y from test.smp_state_survey where "State" IN
(CASE
WHEN 'State' = 'State' THEN 'State 1'
WHEN 'State' = 'District' THEN 'State 1'
END)
group by x ORDER BY x,y
私が間違っていることを教えてください。
編集:
THEN 句の後の値は動的であり、1 つ以上の値を含めることができます (複数選択ボックスから)。クエリを次のように実行したい
SELECT "State" AS x, count("Age Group") AS y from test.smp_state_survey where "State" IN
('State 1','State 2','State 3')
group by x ORDER BY x,y
これはまったく問題なく実行されますが、問題は CASE が必要な文字列を返さないことです。