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