%:匹配零个及多个任意字符; _:与任意单字符匹配; []:匹配一个范围; [^]:排除一个范围

Symbol                    Meaning
like '5[%]'               5%
like '[_]n'               n
like '[a-cdf]'            a, b, c, d, or f
like '[-acdf]'            -, a, c, d, or f
like '[[]'                [
like ']'                  ]
like 'abc[_]d%'           abc_d and abc_de
like 'abc[def]'           abcd, abce, and abcf
like '[^1-9]'             0
like '[^1-9b-z]'          0, a

对于字符串中出现的特殊字符:'%','[','[]', '_' 可以使用 '[]' 把它们包含起来, 这样在匹配模式(pattern)中,它们就被当作普通字符对待了。

1. 用 like '[[]' 匹配特殊字符 '['
select 1 where '[ABCDE' like '[[]%'

2. 用 like ']' 匹配特殊字符 ']'
select 1 where ']ABCDE' like ']%'

3. 用 like '[[]]' 匹配特殊字符 '[]'
select 1 where '[]ABCDE' like '[[]]%%'

4. 用 like '[_]' 匹配特殊字符 '_'
select 1 where '_ABCDE' like '[_]%'

5. 用 like '[%]' 匹配特殊字符 '%'
select 1 where 'ABC%DE' like 'ABC[%]DE'

对于其他的特殊字符:'^', '-', ']' 因为它们本身在包含在 '[]' 中使用,所以需要用另外的方式来转义,于是就引入了 like 中的 escape 子句,另外值得注意的是:escape 可以转义所有的特殊字符。

select 1 where '^ABCDE' like '!^ABCDE' escape '!'
select 1 where '-ABCDE' like '!-ABCDE' escape '!'
select 1 where ']ABCDE' like '!]ABCDE' escape '!'

select 1 where '%ABCDE' like '\%ABCDE' escape '\'
select 1 where '%ABCDE' like '!%ABCDE' escape '!'
select 1 where '%ABCDE' like '#%ABCDE' escape '#'
select 1 where '%ABCDE' like '@%ABCDE' escape '@'

select 1 where '[ABCDE' like '![ABCDE' escape '!'
select 1 where ']ABCDE' like '!]ABCDE' escape '!'

看出规律了吧,就是用 escape 后面紧跟着的字符来做转义字符。 escape 后面的字符相当于 C 语言字符串中的转义字符 '\'。

最后,看一个更加复杂的匹配

select 1 where '[^A-Z]ABCDE' like '\[\^A\-Z\]%' escape '\'

来源:http://www.sqlstudy.com/sql_article.php?id=2008061601

参考:http://zhidao.baidu.com/question/487621467.html

转载于:https://blog.51cto.com/332374363/1068401

SQL Server:Like 通配符特殊用法:Escape相关推荐

  1. mysql raiserror_RAISERROR在SQL Server数据库中的用法

    raiserror  是由单词 raise error 组成 raise  增加; 提高; 提升 raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql ser ...

  2. SQL SERVER 中 GO 的用法2

    具体不废话了,请看下文详解. 1 2 3 4 5 6 7 8 9 10 use db_CSharp go  select *,  备注=case  when Grade>=90 then '成绩 ...

  3. SQL Server 中 RAISERROR 的用法 raiserror 是由单词 raise error 组成 raise 增加; 提高; 提升 raiserror 的作用: r

    SQL Server 中 RAISERROR 的用法 raiserror  是由单词 raise error 组成      raise  增加; 提高; 提升 raiserror 的作用: rais ...

  4. 在Access和 SQL Server中通配符的应用方法

    [转自http://www.zylj.com/article/xgrj/rjyy/1617.html] Access和 SQL Server是企业中常用的数据管理和应用的平台,无论使用那种管理平台,对 ...

  5. SQL Server 中 GO 的用法

    本科里学了那么多年SQL Server一直看到书上各种SQL语句中间夹杂着那么几个看似毫无意义的GO,看着就让人莫名,问老师,老师一般只会告诉你,不要理他,这个东西没用的.但是个性纠结并且有轻微强迫症 ...

  6. SQL SERVER日期函数详细用法

    1.一个月第一天的 Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一 Select DATEADD(wk, DATEDIFF(wk,0, ...

  7. [转]SQL Server 存储过程 一些常用用法(事物、异常捕捉、循环)

      最新更新请访问: http://denghejun.github.io Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中 ...

  8. SQL Server中row_number函数用法介绍

    一.SQL Server Row_number函数简介 ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 语法实例: ...

  9. Sql Server 连接池及其用法

    其实我们一直在使用SqlServer的连接池.在连接字符串中,Pooling为是否启用连接池,默认值为true,表示启用. 与连接池相关的两个重要参数是 Min Pool Size和 Max Pool ...

  10. SQL Server中@@ROWCOUNT的用法

    转自:http://www.studyofnet.com/news/146.html 本文导读:@@ROWCOUNT返回上一语句受影响的行数!和@ERROR一样的特性,在每一条语句执行后都将被重置,如 ...

最新文章

  1. 数学学渣必备!拍照上传,分步求解,微软解题神器拯救你
  2. 银行持续交付实战:一个单体系统足以撑起全球大项目
  3. 害怕离职,侧面说明大多数是离职了没人要的废物?
  4. python试卷(有答案版本、个人答案不是官方答案)_python试卷(有答案版本,个人答案不是官方答案).doc...
  5. 2.10 是否要使用端到端的深度学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  6. 05-JDBC连接MySQL数据库【删除数据】
  7. 【学习笔记】20、日期和时间模快
  8. ad批量走线_AD PCB直角布线批量改为圆角,怎么批量修改呢?
  9. (14)System Verilog 常量const详解
  10. cpu压力测试 Android,Android App 压力测试方法(Monkey)
  11. 详解Python项目开发时自定义模块中对象的导入和使用
  12. java访问rabbitMQ 一
  13. 如何成为数据分析师?数据分析师的职业路线是什么样的?
  14. 一个汉字占用多少个字节?不同的编码方式
  15. java smb删除指定文件,java 利用SMB向远道机器写文件
  16. 使用 Datagrip 导入 Excel 数据表
  17. 不得不说,这是青铜才需要了解的,绝地求生刺激战场段位保护解析
  18. 什么软件可以测试音乐速度,测算歌曲速度有什么好用的编曲软件
  19. Android四大天王
  20. 调用百度短网址API接口进行短网址的转换(Java程序的实现)

热门文章

  1. elasticsearch index 之merge
  2. POJ 2240 Arbitrage(判正环)
  3. Ubuntu-C++环境设置
  4. 用 JavaScript 验证只能输入数字,并做数字加总
  5. C语言 内存分配 地址 指针 数组 参数 解析
  6. Swift5.x的UITableView纯代码演练
  7. android java 调用js,Android中Java和JavaScript交互实例
  8. matlab 由图片生成视频
  9. folders默认配置 shell_更改windows默认的User Shell Folders
  10. html中after对应的样式怎么写,css – 如何创建内联样式:before和:after