gpt4 book ai didi

sql - sql server中基于BETWEEN运算符编写case语句

转载 作者:行者123 更新时间:2023-12-05 01:20:43 26 4
gpt4 key购买 nike

我有一个 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'
...

这很好用,但看起来很丑。

我想将它转换成如下所示:

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'
...

显然第二个查询看起来更好,因为我不必多次编写复杂的表达式。但它正在出错。

Incorrect syntax near the keyword 'between'.

有人可以让我知道我在这里做错了什么吗?

更新:

正如所指出的,我已经更改了问题中的查询以使范围成为排他性的。

最佳答案

你想要的是不可能的,因为 between 语句的语法需要一个表达式来测试,因为它是第一个参数:

test_expression [ NOT ] BETWEEN begin_expression AND end_expression

所以你坚持使用第一种语法。

附带说明一下,您的范围有点偏离 between uses inclusive ranges,但 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'

关于sql - sql server中基于BETWEEN运算符编写case语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29204602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com