3
    DECLARE @TestVal int
SET @TestVal = 5

SELECT
    CASE
        WHEN @TestVal <=3 THEN 'Top 3'
        ELSE 'Other'
    END

このサンプル コードをオンラインで見ましたが、式がなく、WHEN が複数ある例を見つけることができなかったので、このタイプで問題ないかどうか疑問に思っています。

    DECLARE @TestVal int
SET @TestVal = 5

SELECT
    CASE
        WHEN @TestVal <=3 THEN 'Top 3'
                WHEN (select ...) = 1 THEN 'Other Value'
                WHEN (select ...) = 2 THEN 'Other Value 2'
        ELSE 'Other'
    END

それとも、各行に CASE WHEN と言う必要がありますか?

4

3 に答える 3

7

はい、それで問題ありませんが、「WHEN」を縦に並べて、次のように説明します。

SELECT
    CASE
        WHEN @TestVal <=3  THEN 'Top 3'
        WHEN @TestVal <=10 THEN 'Top 10'
        WHEN @TestVAl <=25 THEN 'Top 25'
        ELSE 'Other'
    END

フォーマットは単なるマークダウンの不具合かもしれませんが、(select...)あなたの例では、より単純なスニペットであるべきものが複雑になっています。

于 2009-02-24T16:53:23.583 に答える
5

ケースは次の形式を取ります

CASE WHEN Condition THEN Result
     WHEN Condition2 THEN Result2
ELSE Default
END

編集

これは、Microsoft SQL Server を使用している他の DBMS が異なる可能性があることを前提としています。

于 2009-02-24T16:52:33.507 に答える