IF (To_Char(Date1,'Day') = 'Sunday' Or To_Char(Date2,'Day') = 'Sunday') Then
SELECT columns ... FROM Table_Name;
ELSE
SELECT columns ... FROM Table_Name;
これは機能していません。
IF (To_Char(Date1,'Day') = 'Sunday' Or To_Char(Date2,'Day') = 'Sunday') Then
SELECT columns ... FROM Table_Name;
ELSE
SELECT columns ... FROM Table_Name;
これは機能していません。
フォーマット モデルでフォーマット モデル修飾子,を使用していないため、「機能していません」fm
。フォーマット モデル修飾子を使用していないため、曜日は 9 文字 (最長の水曜日の長さ) になるまでスペースで右側に埋め込まれます。これは、平等のテストが正しくないことを意味します。
それを修正するには、フォーマット モデル修飾子を使用します。
to_char(date1, 'fmDay')
このクエリを実行して、問題と解決策の両方のデモンストレーションを行うことができます。
with a_week as (
select sysdate - level as dy
from dual
connect by level <= 7 )
select dy
, to_char(dy, 'Day')
, length(to_char(dy, 'Day'))
, to_char(dy, 'fmDay')
, length(to_char(dy, 'fmDay'))
from a_week
このSQLフィドルを参照してください
私は気にしないと言った。なぜあなたは一日中入力する必要があるのですか? DY
代わりにフォーマット モデルを使用します。
if to_char(date1,'DY') = 'SUN' or to_char(date2,'DY') = 'SUN' then
...
これは常に 3 文字の長さです。
デバッグに関する簡単なメモ。最初の IF ステートメントが正しく実行されていないことがわかっている場合は、次の段階に従います。