在SQL Server中进行BETWEEN

Hel*_*rld 4 sql t-sql sql-server

如何获得4到8之间的数字.我想要的答案是5,6,7,但在SQL Server中使用时脚本返回4,5,6,7,8:

SELECT * 
FROM table
WHERE numbers BETWEEN '4' AND '8'
Run Code Online (Sandbox Code Playgroud)

Tar*_*ryn 13

BETWEEN包容性.来自MSDN:

如果test_expression的值大于或等于begin_expression的值且小于或等于end_expression的值,则BETWEEN返回TRUE.

由于它是包容性的,你将希望使用大于和小于:

SELECT * 
FROM yourtable
WHERE numbers > 4
   AND numbers < 8
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo

如果您想使用BETWEEN运算符,则需要缩短范围:

SELECT * 
FROM yourtable
WHERE numbers between 5 AND 7
Run Code Online (Sandbox Code Playgroud)

看看SQL Fiddle with Demo