4

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

SELECT * 
FROM table
WHERE numbers BETWEEN '4' AND '8'
4

1 回答 1

13

BETWEEN是包容的。来自 MSDN:

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

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

SELECT * 
FROM yourtable
WHERE numbers > 4
   AND numbers < 8

请参阅带有演示的 SQL Fiddle

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

SELECT * 
FROM yourtable
WHERE numbers between 5 AND 7

SQL Fiddle with Demo

于 2012-09-12T11:54:21.740 回答