like '%[wx|wy]%' 匹配含有 wx或wy 的數據
沒有正則表達式LIKE 確定給定字符串否與指定模式匹配模式包含常規字符和通配符字符模式匹配過程常規字符必須與字符串指定字符完全匹配而使用字符串任意片段匹配通配符與使用 = 和 != 字符串比較運算符相比使用通配符使 LIKE 運算符更加靈活任何參數都屬於字符串數據類型Microsoft® SQL Server™ 會其轉換成字符串數據類型(能) 語法 match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ] 參數 match_expression 任何字符串數據類型有效 SQL Server 表達式 patternmatch_expression 搜索模式包含下列有效 SQL Server 通配符 1 % 包含零或更多字符任意字符串 示例:WHERE title LIKE '%computer% ' 查找處於書名任意位置包含單詞 computer 所有書名 2 _(下劃線) 任何單字符 示例:WHERE au_fname LIKE '_ean ' 查找 ean 結尾所有 4 字母名字(Dean、Sean 等) 3 [] 指定範圍任何單字符 示例:WHERE au_lname LIKE '[C-P]arsen ' 查找arsen 結尾且介於 C 與 P 之間任何單字符開始 作者姓氏例Carsen、Larsen、Karsen 等 4 [^] 屬於指定範圍任何單字符與 [] 相反 示例:WHERE au_lname LIKE 'de[^l]% ' 查找 de 開始且其字母 l 所有作者姓氏 使用 like 模式匹配: 搜索Datetime類型時建議使用like . LIKE 支持 ASCII 模式匹配和 Unicode 模式匹配當所有參數包括 match_expression、pattern 和 escape_character(有)都 ASCII 字符數據類型時執行 ASCII 模式匹配其任何參數屬於 Unicode 數據類型則所有參數被轉換 Unicode 並執行 Unicode 模式匹配當對 Unicode 數據(nchar 或 nvarchar 數據類型)使用 LIKE 時尾隨空格有意義對於非 Unicode 數據尾隨空格沒有意義Unicode LIKE 與 SQL-92 標準兼容ASCII LIKE 與 SQL Server 早期版本兼容 二 使用 % 通配符 例此查詢顯示數據庫所有系統表因們都字母 sys 開始: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'sys% ' 若要查閱非系統表所有對象請使用 NOT LIKE 'sys% '共有 32 對象且 LIKE 找 13 與模式匹配名稱則 NOT LIKE 找 19 與 LIKE 模式匹配對象 三 使用escape字句模式匹配 搜索包含或多特殊通配符字符串例customers 數據庫 discounts 表能存儲含百分號 (%) 折扣值若要搜索作字符而通配符百分號必須提供 ESCAPE 關鍵字和轉義符例樣本數據庫包含名 comment 列該列含文本 30%若要搜索 comment 列任何位置包含字符串 30% 任何行請指定由 WHERE comment LIKE '%30!%% ' ESCAPE '! ' 組成 WHERE 子句指定 ESCAPE 和轉義符SQL Server 返回所有含字符串 30 行 下例使用 ESCAPE 子句和轉義符查找 mytbl2 表 c1 列精確字符串 10-15% USE pubs GO IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'mytbl2 ') DROP TABLE mytbl2 GO USE pubs GO CREATE TABLE mytbl2 ( c1 sysname ) GO INSERT mytbl2 VALUES ( 'Discount is 10-15% off ') INSERT mytbl2 VALUES ( 'Discount is .10-.15 off ') GO SELECT c1 FROM mytbl2 WHERE c1 LIKE '%10-15!% off% ' ESCAPE '! ' GO 四 使用 [] 通配符 下例查找姓 Carson、Carsen、Karson 或 Karsen 作者所行 USE pubs SELECT au_lname, au_fname, phone FROM authors WHERE au_lname LIKE '[CK]ars[eo]n ' ORDER BY au_lname ASC, au_fname ASC