2010-07-17 6 views
0

Я использую SQL Server 2008 Enterprise для Windows Server 2008 Enterprise. У меня есть вопрос о TSQL в SQL Server 2008. Для выбора-где заявления, есть две Differnet формы,Проблема с предложением выбора SQL Server

(1) выбрать, где Foo между [некоторым значением] и [другим значением],

(2) выберите, где foo> = [некоторое значение] и foo < = [некоторое другое значение]? Я не уверен, между ли и между ними всегда используется < = и> = знак?

BTW: независимо от того, всегда ли они одинаковы - даже для разных типов данных (например, сравнить числовое значение, сравнивая значения строк), оцените, сможет ли кто-нибудь предоставить некоторые документы, чтобы доказать, являются ли они всегда одинаковыми, чтобы я мог узнать больше от него.

спасибо заранее, Джордж

ответ

6

Да они всегда одинаковы. entry in Books Online для BETWEEN говорит

МЕЖДУ возвращает значение ИСТИНА, если значение test_expression больше или равно значению begin_expression и меньше или равно значению end_expression.

Действительно, вы можете легко это увидеть, посмотрев планы выполнения. Вы увидите, что 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*/ 

enter image description here

+0

Как увидеть планы выполнения esaily в SQL Server 2008 Management Studio? Извините, я новичок в этой теме. – George2

+1

@ Мартин Смит, спасибо, что объяснил это. Я просто думал, что как я могу это объяснить. – Kashif

+2

@ George2 - В меню «Запрос» выберите «Включить фактический план выполнения», затем запустите запрос или «CTRL + M» показывает фактический план. Изменить: Мухаммад объяснил, как увидеть сметный план. Расчетный план может быть лучше, так как вам даже не нужно выполнять запросы. –