2012-02-29 8 views
1

私は次のようなDB2文のcase式を持っています。ケース式に名前を付けますか?

SELECT A, 
    CASE WHEN B LIKE ' %' 
     THEN C 
     ELSE B 
    END CASE, 
    D 
FROM TAB 

私は、ケース式の結果というの列に名前を付けるしたいのですが、私はASはすぐEND CASEを以下、括弧で式全体を包むとASとに続くことによっての両方で構文エラーを取得します。 (括弧なし)AS追加

次のエラー

199をもたらす:SQL0199N「」次の「AS」予約語の使用は有効ではありません。予想されるトークンには、「FROM INTO」が含まれます。 SQLSTATE = 42601

この列の名前はどのようにして指定できますか?

+0

あなたは 'END CASE'を使うべきですか?簡単にGoogle ***が、これは(のような文IF、等)*ではなく、SELECT文の中で使用するための手順制御*用であることを私に***を示唆しています。代わりに 'END'を使ってみましたか? * [また、エラーメッセージが含まれている場合、時にはそれが有用であると証明できるのに役立ちます。] * – MatBailie

答えて

3

終了キーワードがEND CASEではありませんが、それだけでENDです:

SELECT A, 
    CASE WHEN B LIKE ' %' 
     THEN C 
     ELSE B 
    END AS D     --- the AS is optional 
FROM TAB 

ここdocumentation for CASE expressionはDB2に - それが本当に必要ありませんが、それは標準SQLです。

+0

問題、感謝されること! –