RDMSにOracle 12cを使用するWebアプリケーションで作業しています。
私は達成しようとしていることをやめたので、私の問題を解決するための助け/ガイダンスを探しています。
私は次のSQL case文を実行していますが、null値を返します:
CASE MRI.REVIEW_NAME
WHEN 'wk1' THEN COALESCE(A.DC_CLASSIFICATION_DATE,A.DC_TRANSFER_DATE) + 7
WHEN 'wk2' THEN COALESCE(A.DC_CLASSIFICATION_DATE,A.DC_TRANSFER_DATE) + 14
WHEN 'wk3' THEN COALESCE(A.DC_CLASSIFICATION_DATE,A.DC_TRANSFER_DATE) + 21
WHEN 'wk4' THEN COALESCE(A.DC_CLASSIFICATION_DATE,A.DC_TRANSFER_DATE) + 28
WHEN 'wk5' THEN COALESCE(A.DC_CLASSIFICATION_DATE,A.DC_TRANSFER_DATE) + 35
WHEN 'wk6' THEN COALESCE(A.DC_CLASSIFICATION_DATE,A.DC_TRANSFER_DATE) + 42
WHEN 'wk7' THEN COALESCE(A.DC_CLASSIFICATION_DATE,A.DC_TRANSFER_DATE) + 49
WHEN 'wk8' THEN COALESCE(A.DC_CLASSIFICATION_DATE,A.DC_TRANSFER_DATE) + 56
WHEN 'wk9' THEN COALESCE(A.DC_CLASSIFICATION_DATE,A.DC_TRANSFER_DATE) + 63
WHEN 'wk10' THEN COALESCE(A.DC_CLASSIFICATION_DATE,A.DC_TRANSFER_DATE) + 70
WHEN 'wk11' THEN COALESCE(A.DC_CLASSIFICATION_DATE,A.DC_TRANSFER_DATE) + 77
WHEN 'wk12' THEN COALESCE(A.DC_CLASSIFICATION_DATE,A.DC_TRANSFER_DATE) + 84
END AS REVIEW_END_DATE,
これは可能ですか、私が見つけたすべての例では、列操作ではなくTHENの後に文字列値を使用していますか? PL/SQLの回答は不要で、SQLのみです。
OK、データが問題を引き起こしていましたが、期待どおりに動作します。私は不可能だと思ったOracle Caseの声明について何かを学んだのでありがとう。
任意の助けに感謝します。 JC
回答 1 件
関連記事
- 表の列を更新し、Oracleで内部結合を使用します
- エラーORA-00998:この式に列エイリアスを指定する必要があります
- 特定の名前で始まらないすべての行を削除しようとしているときに、データフレームに列名を保持するにはどうすればよいですか?
- 参加している2つのサブクエリから列を取得しようとしていますが、グループ化が機能していません
- GROUP BY式ではありません(Oracle)
- Oracle SQLPIVOT「列があいまいに定義されています」
- Oracleで各従業員の2つの従業員テーブルを列ごとに比較する方法
- OracleSQLLDR制御ファイルの単一列の2つのフィールドを連結する方法は?
- テーブルに列だけを追加することは可能ですか? (oracle sql)
- Oracleの正規表現機能を使用して、タイトルに3つ以上の単語が含まれるすべての映画を検索します
より一般的な式は次のとおりです。
それは短く、問題を解決するはずです。