程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> boiz的TSQL備忘錄(一)--LIKE子句和通配符

boiz的TSQL備忘錄(一)--LIKE子句和通配符

編輯:關於SqlServer
LIKE子句和通配符  
確定給定的字符串是否與指定的模式匹配。模式可以包含常規字符和通配符字符。模式匹配過程中,常規字符必須與字符串中指定的字符完全匹配。然而,可使用字符串的任意片段匹配通配符。與使用 = 和 != 字符串比較運算符相比,使用通配符可使 LIKE 運算符更加靈活。如果任何參數都不屬於字符串數據類型,Microsoft® SQL Server™ 會將其轉換成字符串數據類型(如果可能)。
語法
match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]
參數
match_expression
任何字符串數據類型的有效 SQL Server 表達式。
pattern

match_expression 中的搜索模式,可以包含下列有效 SQL Server 通配符。
通配符
描述
示例
%
包含零個或更多字符的任意字符串。

1.5pt; WIDTH: 45%; PADDING-TOP: 1.5pt" valign="top" width="45%">
WHERE title LIKE '%computer%' 將查找處於書名任意位置的包含單詞 computer 的所有書名。
_(下劃線)
任何單個字符。
WHERE au_fname LIKE '_ean' 將查找以 ean 結尾的所有 4 個字母的名字(Dean、Sean 等)。
[ ]
指定范圍 ([a-f]) 或集合 ([abcdef]) 中的任何單個字符。
WHERE au_lname LIKE '[C-P]arsen' 將查找以arsen 結尾且以介於 C 與 P 之間的任何單個字符開始的作者姓氏,例如,Carsen、Larsen、Karsen 等。
[^]


不屬於指定范圍 ([a-f]) 或集合 ([abcdef]) 的任何單個字符。
WHERE au_lname LIKE 'de[^l]%' 將查找以 de 開始且其後的字母不為 l 的所有作者的姓氏。


將通配符作為文字使用
可以將通配符模式匹配字符串用作文字字符串,方法是將通配符放在括號中。下表顯示了使用 LIKE 關鍵字和 [ ] 通配符的示例。


符號
含義
LIKE '5[%]'
5%
LIKE '[_]n'
_n

ING-TOP: 1.5pt" valign="top" width="48%">
LIKE '[a-cdf]'
a、b、c、d 或 f
LIKE '[-acdf]'
-、a、c、d 或 f
LIKE '[ [ ]'
[
LIKE ']'
]
LIKE 'abc[_]d%'
abc_d

span>和 abc_de
LIKE 'abc[def]'
abcd、abce 和 abcf


 


使用 ESCAPE 子句的模式匹配
可搜索包含一個或多個特殊通配符的字符串。例如,customers 數據庫中的 discounts 表可能存儲含百分號 (%) 的折扣值。若要搜索作為字符而不是通配符的百分號,必須提供 ESCAPE 關鍵字和轉義符。例如,一個樣本數據庫包含名為 comment 的列,該列含文本 30%。若要搜索在 comment 列中的任何位置包含字符串 30% 的任何行,請指定由 WHERE comment LIKE '%30!%%' ESCAPE '!' 組成的 WHERE 子句。如果不指定 ESCAPE 和轉義符,SQL Server 將返回所有含字符串 30 的行。
下例說明如何在 pubs 數據庫 titles 表的 notes 列中搜索字符串"50% off when 100 or more copIEs are purchased":
USE pubs
GO
SELECT notes
FROM titles
WHERE notes LIKE '50%% off when 100 or more copIEs are purchased'
   ESCAPE '%'
GO

  


使用 [ ] 通配符
下例查找名字為 Cheryl 或 Sheryl 的作者。
USE pubs
GO
SELECT au_lname, au_fname, phone
FROM authors
WHERE au_fname LIKE '[CS]heryl'
ORDER BY au_lname ASC,

au_fname ASC
GO
下例查找姓為 Carson、Carsen、Karson 或 Karsen 的作者所在的行。
USE pubs
GO
SELECT au_lname, au_fname, phone
FROM authors
WHERE au_lname LIKE '[CK]ars[eo]n'
ORDER BY au_lname ASC, au_fname ASC
GO
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved