我有一个CASE声明,如下所示:
SELECT CASE
WHEN <expression>> BETWEEN 0 AND 10 THEN '0-10'
WHEN <<expression>> BETWEEN 11 AND 20 THEN '11-20'
WHEN <<expression>> BETWEEN 21 AND 30 THEN '21-30'
...
Run Code Online (Sandbox Code Playgroud)
这很好用,但看起来很丑。
我想将其转换为如下所示的内容:
SELECT CASE <expression>>
WHEN BETWEEN 0 AND 10 THEN '0-10'
WHEN BETWEEN 11 AND 20 THEN '11-20'
WHEN BETWEEN 21 AND 30 THEN '21-30'
...
Run Code Online (Sandbox Code Playgroud)
显然,第二个查询看起来更好,因为我不必多次编写该复杂的表达式。但它出错了。
Incorrect syntax near the keyword 'between'.
Run Code Online (Sandbox Code Playgroud)
有人可以让我知道我在这里做错了什么吗?
更新:
正如所指出的,我已经更改了问题中的查询以使范围具有独占性。
您可以尝试使用子查询
SELECT CASE
WHEN ColName BETWEEN 0 AND 10 THEN '0-10'
WHEN ColName BETWEEN 10 AND 20 THEN '10-20'
WHEN ColName BETWEEN 20 AND 30 THEN '20-30'
...
FROM
(
SELECT <<expression>> as ColName
FROM tableName
) Z
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80057 次 |
| 最近记录: |