2017-08-31 17 views
1

この質問を投稿する前に、私はその時を見ましたが、私の問題は解決しません。if条件に基づいて選択を実行

このシナリオは、月曜日かどうかに基づいて、テーブルからデータを取得する必要があります。私はPL/SQLブロックで書くことができますが、私はこれを平易なSQLで実現したいと思います。

お願いします。

+0

これを少し拡張すると、これは私がやりたいことです - 月曜日がcurdateかどうかを確認してから、* another_tableから*を選択してください。これはSQLだけでも可能ですか? – julie

答えて

0

to_char(sysdate-3, 'DAY')MONDAYを返します。あなたはそれをトリミングしnullよりdecode返り異なる値を使用してすることができます

select decode(TRIM(to_char(sysdate-3, 'DAY')),'MONDAY', 1, null) from dual 

EDIT:あなたは

where decode(to_char(sysdate-3, 'fmDAY'), 'MONDAY', 1, null) =1 

* sysdate-3だったことができる場所で

それはThurだから選ぶ

select * from table1 
where to_char(sysdate, 'DY') = 'MON' 
union all 
select * from table2 
where to_char(sysdate, 'DY') != 'MON' 

これはあなたのNLS設定に依存しているように一日リテラルを使用する:sday今日のテーブルを想定し

+1

'to_char(sysdate-3、 'fmDAY')'もTRIMの代わりに機能します。 –

0

は、これが機能するのと同じ構造を有しています。必要に応じてソリューションを調整してください。

関連する問題