程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP入門教程 >> 在ADO使用SELECT語法二

在ADO使用SELECT語法二

編輯:ASP入門教程
接上一篇文章:

WHERE可以使用下面的BETWEEN、LIKE、IN運算子。

Between...And

Between...And判斷表達式的值是否落在指定的范圍之中。語法為:

exPR Between value1 And value2

    表示如果expr的值介於value1和value2之間,則Between...And運算子會返回True;否則它會返回False。

    您也可以加上邏輯運算 Not expr Between value1 And value2,來判斷相反的條件,即expr落在value1和 value 2的范圍之外。

    如果expr、value1、或value2為Null時,則Between...And會返回Null值。

    您不能在 Between...And 運算子中使用通配符*,例如,您不能使用 100* 和 500* 來尋找介於1000至5000中的產品代號。

Like

Like尋找相符合的關鍵字。

Like跟隨一個運算式,列出所要比較的字串或字符串文字。

    在一運算式中,您可以使用 Like 運算子將一字段資料和一字串運算式做一比較。您可以使用通配符*來找出相類似的資料,譬如Like "王*",則查詢會返回所有字段中以 [王] 做為開頭的資料。

Like後運算式可以使用的符號:



%:通配符,表示一個或多個字符,譬如LIKE jack% 將找到所有以jack為起頭的字串文字,LIKE %jack%則找到包括jack的字串文字。


_:一個字符的通配符,譬如LIKE jack_ 將找到如jack1、jacka等字串文字,LIKE _jack_ 則找到如ajackb、cjackf等字串文字。 

[x-y]:指定字符范圍,譬如LIKE [a-c]jack 將找到如ajack1、bjack、cjack等字串文字。 

[^x-y]:指定排除的字符范圍,譬如LIKE [^a-c]jack 將不會找到如ajack1、bjack、cjack等字串文字。

下例中,會得到以字母A做為開頭而其後接著介於B到G之間的任何字母和一個數字的資料:

Like "A[B-G]#"

IN

IN運算式,限定范圍。

語法為:

expr [Not] In(value1, value2,…)

其中expr為運算式字段。value1, value2, …為指定的范圍清單。

例如,您可以使用In運算子,來指定學生必須居住的城市,為廣州市、深圳市、或汕頭市:

SELECT *

FROM 學生

WHERE 城市 In ('廣州市','深圳市','汕頭市')

讓我們看一個ASP程式使用這個SQL指令的例子。

    我們可以利用IN子句決定范圍,譬如ASP程式rs24.ASP如下,[SELECT 姓名,科目,分數 From 考試 Where 分數 In (SELECT 分數 From 考試 Where 分數>=60)],使用IN找出分數大於或等於60分的記錄:

<%

Set conn1 = Server.CreateObject("ADODB.Connection") 

conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;" 

Set rs2 = Server.CreateObject("ADODB.Recordset")

SqlStr = "SELECT 姓名,科目,分數 From 考試 Where 分數 In (SELECT 分數 From 考試 Where 分數>=60)"

rs2.Open SqlStr,conn1,1,1

Response.Write "<p>In: 低於60分不算"

Do while not rs2.EOF

Response.Write "<BR>" & rs2("姓名") & " " & rs2("科目") & " 分數: " & rs2("分數")

rs2.MoveNext

Loop

rs2.Close

%>

    以上的ASP程式rs24.ASP,在用戶端使用浏覽器,浏覽執行的結果,顯示分數大於或等於60分的記錄。

NOT IN

NOT IN運算式,表示不屬於所指定的范圍。

讓我們看一個於ASP程式中使用這個SQL指令的例子。

    我們可以利用Not In子句決定不應顯示的記錄,譬如ASP程式rs24.ASP如下,[SELECT 姓名,科目,分數 From 考試 Where 分數 Not In (SELECT 分數 From 考試 Where 分數>=60)],使用IN找出分數不大於或等於60分的記錄,即小於60分的記錄:

<%

Set conn1 = Server.CreateObject("ADODB.Connection") 

conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;" 

Set rs2 = Server.CreateObject("ADODB.Recordset")

SqlStr = "SELECT 姓名,科目,分數 From 考試 Where 分數 Not In (SELECT 分數 From 考試 Where 分數>=60)"

rs2.Open SqlStr,conn1,1,1

Response.Write "<p>Not In: 高於60分不算"

Do while not rs2.EOF

Response.Write "<BR>" & rs2("姓名") & " " & rs2("科目") & " 分數: " & rs2("分數")

rs2.MoveNext

Loop

rs2.Close

%>

    以上的 ASP程式rs24.ASP,在用戶端使用浏覽器,浏覽執行的結果,顯示分數不大於或等於60分的記錄  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved