3

MS SQLでSELECT CASEを使用する2つの方法[CASE WHEN X = Y]と[CASE X WHEN Y]についての質問です。

値に基づいてフィールドのバケットを定義しようとしています。範囲を使用する必要があるため、「<」または「>」識別子を使用する必要があります。

簡単な例として、私はそれが次のように機能することを知っています:

SELECT CASE WHEN x < 0 THEN 'a' WHEN X > 100 THEN 'b' ELSE 'c' END

今、私はこれらの多くを書かなければなりません.3つ以上のバケットがあり、フィールド名は非常に長いので、これをきれいに保つのは非常に難しく、従うのは簡単です. select コマンドの別の方法を使用したいと思っていましたが、equals でのみ使用できるように見えます。

SELECT CASE X WHEN 0 then 'y' ELSE 'z' END

しかし、このフォームを使用して、上記のように範囲条件を指定するにはどうすればよいでしょうか? 何かのようなもの:

SELECT CASE X WHEN < 0 THEN 'a' WHEN > 100 THEN 'b' ELSE "c" END

これは機能しません。

ありがとう!

4

4 に答える 4

1

BETWEEN を使用すると、それほど悪くはありません。

SELECT CASE
WHEN X < 0 THEN 'a'
WHEN X BETWEEN 0   AND 100 THEN 'b' 
WHEN X BETWEEN 100 AND 200 THEN 'c' 
ELSE 'd' END
于 2013-09-30T18:16:49.473 に答える