0
IN句でCASEを使用して2つのケース間で値を選択する場合、このクエリを実行しようとしています。INtime句がCASEをRedshiftで使用する場合
問題は、ハードコード値( 'aaa'、 'bbb')にあります。私はTHENの内部に複数の値を追加することはできませんので、通常のIN値として機能します。私は変数を渡すので、ハードコード値は動的になります。
select kdo.field0
from tb1 data1 inner join tb2 kdo
on kdo.field1 = 'xxx'
and kdo.field2::DATE >='2017-08-01'::DATE
and kdo.field0
in (case when 'asd'!='' then 'aaa','bbb'
else tb2.field0 end);
また、特定のハードコード値を取得するためにTHEN内でサブクエリ選択を使用しましたが、それは役に立たないこともあります。単一のハードコーディングされた値を使用すると、明らかに通常どおり動作します。
'asd'をテスト目的で使用しました。それについて言及してくれないのは残念です。これは実際のクエリの変数に置き換えられます。 tb2.field0を使用すると元のクエリと同様の機能が実現します。提案していただきありがとうございます。私はこのような簡単な質問を混乱させてしまったことを嘆いています。 –
@HarshitBhatt正解の場合はそれをマークしてください – AlexYes