bugfix> sql > 投稿

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