SQL模糊查詢及通配符


SQL模糊查詢,使用like比較字,加上SQL里的通配符,請參考以下: 

1、LIKE'Mc%' 將搜索以字母 Mc 開頭的所有字符串(如 McBadden)。 
2、LIKE'%inger' 將搜索以字母 inger 結尾的所有字符串(如 Ringer、Stringer)。 
3、LIKE'%en%' 將搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。 
4、LIKE'_heryl' 將搜索以字母 heryl 結尾的所有六個字母的名稱(如 Cheryl、Sheryl)。 “_ ” 代表單個任意字符。
5、LIKE'[CK]ars[eo]n' 將搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。 “[ ]” 代表包含其中任意一個字符。
6、LIKE'[M-Z]inger' 將搜索以字符串 inger 結尾、以從 M 到 Z 的任何單個字母開頭的所有名稱(如 Ringer)。 
7、LIKE'M[^c]%' 將搜索以字母 M 開頭,並且第二個字母不是 c 的所有名稱(如MacFeather)。 
------------------------------------------------- 
下面這句查詢字符串是我以前寫的,根據變量 zipcode_key 在郵政編碼表 zipcode 中查詢對應的數據,這句是判斷變量zipcode_key 為非數字時的查詢語句,用 % 來匹配任意長度的字符串,

從表中地址、市、省三列中查詢包含關鍵字的所有數據項,並按省、市、地址排序。這個例子比較簡單,只要你理解了方法就可以寫出更復雜的查詢語句。 

sql = "select * from zipcode where (address like'%" & zipcode_key & "%') or (city like'%" & zipcode_key & "%') or (province like'%" & zipcode_key & "%')
order by province,city,address"。

-----------------------------------------------------

 
用於where比較條件的有
     等於:=、<、<=、>、>=、<>
     包含:in、not in    exists、not exists
     范圍:between...and、not between....and
     匹配測試:like、not like
     Null測試:is null、is not null
     布爾鏈接:and、or、not
通配符
在where子句中,通配符可與like條件一起使用。在Oracle中:
     %(百分號):    用來表示任意數量的字符,或者可能根本沒有字符。
     _(下划線):     表示確切的未知字符。
     ?(問號):         用來表示確切的未知字符。
     #(井號):         用來表示確切的阿拉伯數字,0到9。
     [a-d](方括號):用來表示字符范圍,在這里是從a到d。

單引號('):在Oracle中,應該只使用單引號將文本和字符和日期括起來,不能使用引號(包括單雙引號)將數字括起來。

雙引號("):在Oracle中,單雙引號含義不同。雙引號被用來將包含特定字符或者空格的列別名括起來。雙引號還被用來將文本放入日期格式。

撇號('):在Oracle中,撇號也可以寫成彼此相鄰的兩個單引號。為了在供應商名字中間查找所有帶撇號的供應商名字,可以這樣編寫代碼:
         select * from l_suppliers where supplier_name like '%''%'

&符號:在Oracle中,&符號常用來指出一個變量。例如,&fox是一個變量,稍微有點不同的一種&& fox。每當&fox出現在Oracle腳本中時,都會要求您為它提供一個值。而使用&&fox,您只需要在& &fox第一次出現時為它提供變量值。如果想將&符號作為普通的符號使用,則應該關閉這個特性。要想關閉這個特性,可以運行以下的命令: set define off ,這是一個SQLplus命令,不是一個SQL命令。SQLplus設置了SQL在Oracle中運行的環境。

     雙豎線(||):Oracle使用雙豎線表示字符串連接函數。

     星號(*):select *意味着選擇所有的列,count(*)意味着計算所有的行,表示通配符時,表示0個或任意多個字符。

     正斜杠(/):在Oracle中,用來終止SQL語句。更准確的說,是表示了“運行現在位於緩沖區的SQL代碼”。正斜杠也用作分隔項。

     多行注釋:/*......*/。

     不等於:有多種表達方式:!=、^=、<>、not xxx=yyy、not(xxx=yyy)
----------------------------------------------------------------------------------------------------------------

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM