0

我在 Windows Server 2008 Enterprise 上使用 SQL Server 2008 Enterprise。我有一个关于 SQL Server 2008 中 tsql 的问题。对于 select-where 语句,有两种不同的形式,

(1) 选择 [某个值] 和 [某个其他值] 之间的 foo,

(2) select where foo >= [some value] and foo <= [some other value]?我不确定 between-and 是否总是与使用 <= 和 >= 符号相同?

顺便说一句:它们是否总是相同 - 即使对于不同类型的数据(例如比较数值,比较字符串值),如果有人可以提供一些文件来证明它们是否总是相同,那么我可以从中学习更多.

提前谢谢,乔治

4

1 回答 1

6

是的,它们总是一样的。在线图书中的条目BETWEEN

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

事实上,您可以通过查看执行计划轻松地看到这一点。你会看到它Between甚至没有出现在文本中。它已被替换为>=<=两者之间没有区别。

SELECT * FROM master.dbo.spt_values 
WHERE number between 1 and 3 /*Numeric*/

SELECT * FROM master.dbo.spt_values 
WHERE name between 'a' and 'b' /*String*/

select * from sys.objects 
WHERE create_date between GETDATE() and GETDATE()+100 /*Date*/

在此处输入图像描述

于 2010-07-17T09:59:19.267 回答