0

Windows Server2008EnterpriseでSQLServer2008Enterpriseを使用しています。SQL Server 2008のtsqlについて質問があります。select-whereステートメントには、2つの異なる形式があります。

(1)[ある値]と[ある他の値]の間のfooを選択します。

(2)foo>=[ある値]およびfoo<=[他の値]の場所を選択しますか?間かどうかはわかりません-そして常に<=と>=の記号を使用するのと同じですか?

ところで:それらが常に同じであるかどうか-異なるタイプのデータ(たとえば、数値の比較、文字列値の比較)の場合でも、それらが常に同じであるかどうかを証明するためのドキュメントを誰かが提供できるかどうかを感謝します。 。

よろしくお願いします、ジョージ

4

1 に答える 1

6

はい、それらは常に同じです。Books Online for forのエントリにBETWEENは、

BETWEEN は、test_expression の値が begin_expression の値以上で end_expression の値以下の場合に TRUE を返します。

実際、これは実行計画を見れば簡単にわかります。Between文章にも出てこないことがわかります。に置き換えられており>=<=この 2 つの間に区別はありません。

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 に答える