SQL (2005)中 部分正則

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章