2

現在、case ステートメントを使用して実行するクエリを決定するストアド プロシージャを作成中です。クエリの 1 つに case 式があり、変更されたプロシージャを保存しようとするたびに構文エラーが発生します。プロシージャはそのケース式がなくても問題なく保存されますが、追加されると失敗します。式自体の構文が正確であることはわかっているので、case ステートメント内で case 式を使用できるかどうか疑問に思っています。

例:

CASE
    WHEN x = 1 THEN
        SELECT
            5 AS 'Col1',
            CASE
                WHEN y = 5 THEN 2 
                ELSE 0
            END AS 'Col2'
        FROM table
        WHERE 1=1
        ;
    WHEN x = 2 THEN
        SELECT
            *
        FROM table2
        ;
    ELSE
        SELECT
            *
        FROM table3
        ;
END CASE;

どんな助けでも大歓迎です。case ステートメント内に case 式を含めることはできますか? もしそうなら、それは異なってフォーマットされていますか?どうすればこれを機能させることができますか...?

ありがとうございました!

4

2 に答える 2

0

それは私の区切りでした。一般的な手順の区切り文字をセミコロン以外のものに変更し、最後に元に戻すと、すべて正常に機能します。

于 2016-08-16T17:36:22.457 に答える