Из ваших комментариев кажется, что вам просто нужен способ вычислить ранг для интервалов 50,000
, поэтому вам не нужно использовать последовательные CASE
выражения. Это можно сделать достаточно просто, используя простое целочисленное деление, а не функцию RANK
:
SELECT *, CAST(salary / 50000 AS INT) + 1 AS Rnk
FROM Employee
дает вам следующие результаты:
+-----+-----------+-----+
| emp | salary | rnk |
+-----+-----------+-----+
| 1 | 49000.00 | 1 |
| 2 | 50000.00 | 2 |
| 3 | 99000.00 | 2 |
| 4 | 100000.00 | 3 |
| 5 | 149000.00 | 3 |
| 6 | 150000.00 | 4 |
+-----+-----------+-----+
При желании вы также можете добавить его в качестве вычисляемого столбца (и индексировать его) по своему усмотрению.