SQL Server 中的 BETWEEN

4

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

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

3
如果这些是数字(数值数据类型),你就不应该加引号!否则将会发生隐式转换 - 使用 WHERE numbers BETWEEN 4 AND 8 就可以了 - 完全不需要引号。 - marc_s
5
'41' жШѓ еЬ® '4' еТМ '8' дєЛйЧіпЉМдљЖ 41 дЄНеЬ® 4 еТМ 8 дєЛйЧігАВдЄНи¶Бе∞ЖжХ∞е≠ЧиІЖдЄЇе≠Чзђ¶дЄ≤пЉМеЃГдїђеєґдЄНзЫЄеРМпЉБ - Remus Rusanu
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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接