天天看點

SQL 通配符

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

SQL 通配符

在搜尋資料庫中的資料時,SQL 通配符可以替代一個或多個字元。

SQL 通配符必須與 LIKE 運算符一起使用。

在 SQL 中,可使用以下通配符:

通配符 描述

% 替代一個或多個字元

_ 僅替代一個字元

[charlist] 字元列中的任何單一字元

[^charlist]

或者

[!charlist]

 不在字元列中的任何單一字元

原始的表 (用在例子中的):

Persons 表:

Id LastName FirstName Address City

1 Adams John Oxford Street London

2 Bush George Fifth Avenue New York

3 Carter Thomas Changan Street Beijing

使用 % 通配符

例子 1

現在,我們希望從上面的 "Persons" 表中選取居住在以 "Ne" 開始的城市裡的人:

我們可以使用下面的 SELECT 語句:

SELECT * FROM Persons

WHERE City LIKE 'Ne%'結果集:

例子 2

接下來,我們希望從 "Persons" 表中選取居住在包含 "lond" 的城市裡的人:

WHERE City LIKE '%lond%'結果集:

使用 _ 通配符

現在,我們希望從上面的 "Persons" 表中選取名字的第一個字元之後是 "eorge" 的人:

WHERE FirstName LIKE '_eorge'結果集:

接下來,我們希望從 "Persons" 表中選取的這條記錄的姓氏以 "C" 開頭,然後是一個任意字元,然後是 "r",然後是任意字元,然後是 "er":

WHERE LastName LIKE 'C_r_er'結果集:

使用 [charlist] 通配符

現在,我們希望從上面的 "Persons" 表中選取居住的城市以 "A" 或 "L" 或 "N" 開頭的人:

WHERE City LIKE '[ALN]%'結果集:

現在,我們希望從上面的 "Persons" 表中選取居住的城市不以 "A" 或 "L" 或 "N" 開頭的人:

WHERE City LIKE '[!ALN]%'結果集:

一、搜尋通配符字元的說明

可以搜尋通配符字元。有兩種方法可指定平常用作通配符的字元:

使用 ESCAPE 關鍵字定義轉義符。在模式中,當轉義符置于通配符之前時,該通配符就解釋為普通字元。例如,要搜尋在任意位置包含字元串 5% 的字元串,請使用:

WHERE ColumnA LIKE '%5/%%' ESCAPE '/'

在上述 LIKE 子句中,前導和結尾百分号 (%) 解釋為通配符,而斜杠 (/) 之後的百分号解釋為字元 %。

在方括号 ([ ]) 中隻包含通配符本身。要搜尋破折号 (-) 而不是用它指定搜尋範圍,請将破折号指定為方括号内的第一個字元:

WHERE ColumnA LIKE '9[-]5'

下表顯示了括在方括号内的通配符的用法。

符号 含義

LIKE '5[%]' 5%

LIKE '5%' 5 後跟 0 個或更多字元的字元串

LIKE '[_]n' _n

LIKE '_n' an, in, on (and so on)

LIKE '[a-cdf]' a, b, c, d, or f

LIKE '[-acdf]' -, a, c, d, or f

LIKE '[ [ ]' [

LIKE ']' ]

二、執行個體說明:

在表PersonalMember中查找strloginname字段中含有"["的記錄。

可用三條語句:

1、

select strloginname,* from PersonalMember where strloginname like '%\[%' escape '\'

2、(說明"\"與"/"均可與escape關鍵字結合作為轉義符)

select strloginname,* from PersonalMember where strloginname like '%/[%' escape '/'

3、

select strloginname,* from dbo.PersonalMember where charindex('[',strloginname)>0

<a href="http://enetcorner.blog.163.com/tag/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%8A%80%E6%9C%AF/feeds">#資料庫技術</a>

本文轉自 netcorner 部落格園部落格,原文連結:http://www.cnblogs.com/netcorner/archive/2011/08/12/2911924.html   ,如需轉載請自行聯系原作者