BETWEEN
指定測試范圍。
語法
test_expression [ NOT ] BETWEEN begin_expression AND end_expression
參數
test_expression
是用來在由 begin_expression 和 end_expression 定義的范圍內進行測試的表達式。test_expression 必須與 begin_expression 和 end_expression 具有相同的數據類型。
NOT
指定謂詞的結果被取反。
begin_expression
是任何有效的 Microsoft® SQL Server™ 表達式。begin_expression 必須與 test_expression 和 end_expression 具有相同的數據類型。
end_expression
是任何有效的 SQL Server 表達式。end_expression 必須與 test_expression 和 begin_expression 一樣具有相同的數據類型。
AND
作為一個占位符,表示 test_expression 應該處於由 begin_expression 和 end_expression 指定的范圍內。
結果類型
Boolean
結果值
如果 test_expression 的值大於或等於 begin_expression 的值並且小於或等於 end_expression 的值,則 BETWEEN 返回 TRUE。
如果 test_expression 的值小於 begin_expression 的值或者大於 end_expression 的值,則 NOT BETWEEN 返回 TRUE。
注釋
若要指定排除范圍,請使用大於 (>) 和小於 (<) 運算符。如果任何 BETWEEN 或 NOT BETWEEN 謂詞的輸入為 NULL,則結果是 UNKNOWN。
示例
A. 使用 BETWEEN
本例返回書的題頭標識符,這些書的年度至今單位銷售額是從 4,095 到 12,000。
USE pubs GO SELECT title_id, ytd_sales FROM titles WHERE ytd_sales BETWEEN 4095 AND 12000 GO
下面是結果集:
title_id ytd_sales -------- ----------- BU1032 4095 BU7832 4095 PC1035 8780 PC8888 4095 TC7777 4095 (5 row(s) affected)
B. 使用 > 和 < 代替 BETWEEN
本例使用大於 (>) 和小於 (<) 運算符,由於這些運算符是非包含的,所以返回不同的結果。
USE pubs GO SELECT title_id, ytd_sales FROM titles WHERE ytd_sales > 4095 AND ytd_sales < 12000 GO
下面是結果集:
title_id ytd_sales -------- ----------- PC1035 8780 (1 row(s) affected)
C. 使用 NOT BETWEEN
本例找出一個指定范圍(從 4,095 到 12,000)外的所有行。
USE pubs GO SELECT title_id, ytd_sales FROM titles WHERE ytd_sales NOT BETWEEN 4095 AND 12000 GO
下面是結果集:
title_id ytd_sales -------- ----------- BU1111 3876 BU2075 18722 MC2222 2032 MC3021 22246 PS1372 375 PS2091 2045 PS2106 111 PS3333 4072 PS7777 3336 TC3218 375 TC4203 15096