質問
DECLARE @TestVal int
SET @TestVal = 5
SELECT
CASE
WHEN @TestVal <=3 THEN 'Top 3'
ELSE 'Other'
END
私は、オンラインでこのサンプルコードを見ましたが、私は何の表現がなかった例を見つけることができなかったし、それがWHENつ以上を持っていたので、事のこのタイプがOKである場合、私は疑問に思ってます:
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
または私はWHEN行ごとにCASEを言う必要があるのですか?
解決
以下の形式をとりますに
CASE WHEN Condition THEN Result
WHEN Condition2 THEN Result2
ELSE Default
END
編集
これは、あなたの使用してMicrosoft SQL Serverの他のDBMSが異なる場合がありますを前提としています。
他のヒント
はい、それは大丈夫ですが、私は垂直S「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...)
は単純スニペットどうあるべきか、複雑ます。
SELECT
CASE
WHEN @TestVal <=3 THEN 'Top 3'
WHEN @TestVal <=10 THEN 'Top 10'
WHEN @TestVAl <=25 THEN 'Top 25'
ELSE 'Other'
END
これは同様に行うことができるネストケース文に関しては(10のネストされたケースステートメントは、SQL内で許可さまで)
所属していません StackOverflow