WHERE可以使用下面的BETWEEN
LIKE
IN運算子
Between
And
Between
And判斷表達式的值是否落在指定的范圍之中
語法為
expr Between value
And value
表示如果expr的值介於value
和value
之間
則Between
And運算子會返回True
否則它會返回False
您也可以加上邏輯運算 Not expr Between value
And value
來判斷相反的條件
即expr落在value
和 value
的范圍之外
如果expr
value
或value
為Null時
則Between
And會返回Null值
您不能在 Between
And 運算子中使用通配符*
例如
您不能使用
* 和
* 來尋找介於
至
中的產品代號
Like
Like尋找相符合的關鍵字
Like跟隨一個運算式
列出所要比較的字串或字符串文字
在一運算式中
您可以使用 Like 運算子將一字段資料和一字串運算式做一比較
您可以使用通配符*來找出相類似的資料
譬如Like
王*
則查詢會返回所有字段中以 [王] 做為開頭的資料
Like後運算式可以使用的符號
%
通配符
表示一個或多個字符
譬如LIKE jack% 將找到所有以jack為起頭的字串文字
LIKE %jack%則找到包括jack的字串文字
_
一個字符的通配符
譬如LIKE jack_ 將找到如jack
jacka等字串文字
LIKE _jack_ 則找到如ajackb
cjackf等字串文字
[x
y]
指定字符范圍
譬如LIKE [a
c]jack 將找到如ajack
bjack
cjack等字串文字
[^x
y]
指定排除的字符范圍
譬如LIKE [^a
c]jack 將不會找到如ajack
bjack
cjack等字串文字
下例中
會得到以字母A做為開頭而其後接著介於B到G之間的任何字母和一個數字的資料
Like
A[B
G]#
IN
IN運算式
限定范圍
語法為
expr [Not] In(value
value
…)
其中expr為運算式字段
value
value
…為指定的范圍清單
例如
您可以使用In運算子
來指定學生必須居住的城市
為廣州市
深圳市
或汕頭市
SELECT *
FROM 學生
WHERE 城市 In (
廣州市
深圳市
汕頭市
)
讓我們看一個ASP程式使用這個SQL指令的例子
我們可以利用IN子句決定范圍
譬如ASP程式rs
asp如下
[SELECT 姓名
科目
分數 From 考試 Where 分數 In (SELECT 分數 From 考試 Where 分數
=
)]
使用IN找出分數大於或等於
分的記錄
%
Set conn
= Server
CreateObject(
ADODB
Connection
)
conn
Open
DBQ=
& Server
MapPath(
ntopsamp
mdb
) &
;Driver=
{Microsoft Access Driver (*
mdb)};DriverId=
;FIL=MS Access;
Set rs
= Server
CreateObject(
ADODB
Recordset
)
SqlStr =
SELECT 姓名
科目
分數 From 考試 Where 分數 In (SELECT 分數
From 考試 Where 分數=
)
rs
Open SqlStr
conn
Response
Write
pIn: 低於
分不算
Do while not rs
EOF
Response
Write
BR
& rs
(
姓名
) &
& rs
(
科目
) &
分數:
&
rs
(
分數
)
rs
MoveNext
Loop
rs
Close
%
以上的ASP程式rs
asp
在用戶端使用浏覽器
浏覽執行的結果
顯示分數大於或等於
分的記錄
NOT IN
NOT IN運算式
表示不屬於所指定的范圍
讓我們看一個於ASP程式中使用這個SQL指令的例子
我們可以利用Not In子句決定不應顯示的記錄
譬如ASP程式rs
asp如下
[SELECT 姓名
科目
分數 From 考試 Where 分數 Not In (SELECT 分數 From 考試 Where 分數=
)]
使用IN找出分數不大於或等於
分的記錄
即小於
分的記錄
%
Set conn
= Server
CreateObject(
ADODB
Connection
)
conn
Open
DBQ=
& Server
MapPath(
ntopsamp
mdb
) &
;Driver=
{Microsoft Access Driver (*
mdb)};DriverId=
;FIL=MS Access;
Set rs
= Server
CreateObject(
ADODB
Recordset
)
SqlStr =
SELECT 姓名
科目
分數 From 考試 Where 分數 Not In (SELECT 分
數 From 考試 Where 分數=
)
rs
Open SqlStr
conn
Response
Write
pNot In: 高於
分不算
Do while not rs
EOF
Response
Write
BR
& rs
(
姓名
) &
& rs
(
科目
) &
分數:
&
rs
(
分數
)
rs
MoveNext
Loop
rs
Close
%
以上的 ASP程式rs
asp
在用戶端使用浏覽器
浏覽執行的結果
顯示分數不大於或等於
分的記錄
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22147.html