在sql中的运算符之间用于多个值范围

时间:2013-07-01 20:38:40

标签: sql sql-server sql-server-2008

我在列上有5个不同的范围数据,我想把过滤器放在

10-20 
110-120 
250-260

我在下面使用,但它投掷不正确的结果。

Select * from test where
testnumber between '10' and '20'
or testnumber between '110' and '120'
or testnumber between '250' and '260'

有人可以建议我如何在SQL中实现这个或正确的方法。感谢

3 个答案:

答案 0 :(得分:1)

试试这个:

select * from test where testnumber between ('10') and ('20')

答案 1 :(得分:1)

如果您可以将范围放入包含BeginNumEndNum列的表格中

SELECT * 
FROM test t
INNER JOIN Ranges r on t.testnumber BETWEEN r.BeginNum and r.EndNum

答案 2 :(得分:0)

即使您无法创建表格,也可以选择其他一些选项:

Select *
from (values(1),(15),(50),(115),(200),(255),(300)) test(testnumber)
where testnumber between '10' and '20'
or testnumber between '110' and '120'
or testnumber between '250' and '260'

declare @test (testnumber int);
insert @test values(1),(15),(50),(115),(200),(255),(300);

Select *
from @test
where testnumber between '10' and '20'
or testnumber between '110' and '120'
or testnumber between '250' and '260'