Sqlserver Like模式匹配

2021-09-05 21:58:27 字數 1847 閱讀 2432

like 關鍵字搜尋與指定模式匹配的字串、日期或時間值。有關詳細資訊,請參閱。like 關鍵字使用常規表示式包含值所要匹配的模式。模式包含要搜尋的字串,字串中可包含四種萬用字元的任意組合。

萬用字元

含義 包含零個或多個字元的任意字串。

任何單個字元。

指定範圍(例如 [a-f])或集合(例如 [abcdef])內的任何單個字元。

不在指定範圍(例如 [^a - f])或集合(例如 [^abcdef])內的任何單個字元。

請將萬用字元和字串用單引號引起來,例如:

此查詢將查詢contact表中區號為 415 的所有**號碼:

select phone

from adventureworks.person.contact

where phone like '415%'

可以將 not like 與同樣的萬用字元結合使用。若要查詢contact表中區號不是 415 的所有**號碼,請使用下列等價查詢中的任意乙個:

select phone

from adventureworks.person.contact

where phone not like '415%'

-- or

select phone

from adventureworks.person.contact

where not phone like '415%'

is not null 子句可與萬用字元和 like 子句結合使用。例如,此查詢將從contact表中檢索以 415 開頭且 is not null 的所有**號碼:

use adventureworks;

goselect phone

from person.contact

where phone like '415%' and phone is not null

包含 like 關鍵字的語句的輸出取決於安裝過程中選擇的排序順序。有關不同的排序順序所產生的影響的詳細資訊,請參閱使用排序規則。

可以在 text 列中使用的唯一 where 條件是 like、is null 或 patindex。

不與 like 一同使用的萬用字元將解釋為常量而非模式,換言之,這些萬用字元僅代表其本身的值。以下查詢試圖查詢只由四個字元 415% 組成的**號碼。該查詢將不會查詢以 415 開頭的**號碼。有關常量的詳細資訊,請參閱常量(資料庫引擎)。

select phone

from adventureworks.person.contact

where phone = '415%'

使用萬用字元時應著重考慮的另乙個問題是對效能的影響。如果表示式以萬用字元開頭,就不能使用索引(就如同給定了姓名 "%mith" 而非 "smith" 時,將無法知道應從**簿的哪一頁開始查詢)。表示式中間或結尾處的萬用字元不妨礙索引的使用(就如同在**簿中一樣,如果姓名為 "samuel%",則不論 samuels 和 samuelson 是否都在**簿上,都知道該從何處開始查詢。)

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

如果使用 like 執行字串比較,模式串中的所有字元(包括每個前導空格和尾隨空格)都有意義。如果要求比較返回帶有字串like 'abc '(abc 後跟乙個空格)的所有行,將不會返回列值為 abc(abc 後沒有空格)的行。但是反過來,情況並非如此。可以忽略模式所要匹配的表示式中的尾隨空格。如果要求比較返回帶有字串like 'abc'(abc 後沒有空格)的所有行,將返回以 abc 開頭且具有零個或多個尾隨空格的所有行。

SQLServer LIKE 萬用字元

可以將萬用字元模式匹配字元作為文字字元使用。若要將萬用字元作為文字字元使用,請將萬用字元放在方括號中。下表顯示了幾個使用 like 關鍵字和 萬用字元的示例。符號含義 like 5 5 like n nlike a cdf a b c d 或 f like acdf a c d 或 f like l...

MVC模式 模式的模式

mvc模式,即模型 model 檢視 view 控制器 controller 檢視是使用者看到並與之互動的介面。對老式的web應用程式來說,檢視就是由html元素組成的介面,在新式的web應用程式中,html依舊在檢視中扮演著重要的角色,但一些新的技術已層出不窮,它們包括adobe flash和像x...

設計模式 12 復合模式(模式的模式)

剩餘3個鴨子物件省略 鵝 public class goose 使用介面卡模式建立乙個會鵝叫的鴨子。public class gooseadapter iquackable public void quack quackcounter類為裝飾者 public class quackcounter i...