zoukankan      html  css  js  c++  java
  • LIKE谓词

      T-SQL提供了一个LIKE谓词,用于检查字符串是否能够匹配指定的模式。在前面介绍的PATINDEX函数中已经使用了类似的模式。接下来的这节将介绍模式中使用的通配符(wildcard),并演示它们的用法。

    %(百分号)通配符

      百分号代表任意长度的字符串,包括空字符串。例如,以下查询返回姓氏(last name)以字符'D'开头的所有雇员:

    1 SELECT empid,lastname
    2  FROM HR.Employees
    3  WHERE lastname LIKE N'D%';

    _(下划线)通配符

      下划线代表任意单个字符。例如,以下查询返回姓氏(last name)第二个字符为'e'的所有雇员:

    1 SELECT empid,lastname
    2 FROM HR.Employees
    3 WHERE lastname LIKE N'_e%';

    [<字符列>]通配符

      方括号中包含一列字符(例如'[ABC]'),表示必须匹配指定字符中的一个字符。例如,以下查询返回姓氏(last name)以字符'A'、'B'或'C'开头的所有雇员:

    1 SELECT empid,lastname
    2 FROM HR.Employees
    3 WHERE lastname LIKE N'[ABC]%';

    [<字符>-<字符>]通配符

      方括号中包含一个字符范围(例如'[A-E]'),表示必须匹配指定范围内的一个字符。例如,以下查询返回姓氏(last name)以字符'A'到'E'开头的所有雇员:

    1 SELECT empid,lastname
    2 FROM HR.Employees
    3 WHERE lastname LIKE N'[A-E]%';

    [^<字符列或范围>]通配符

      方括号中包含一个插入符(^),后面跟着一个字符列或范围(例如'[^A-E]'),表示不属于指定字符列或范围内的任意单个字符。例如,以下查询返回姓氏(last name)不是以字符'A'到'E'开头的所有雇员:

    1 SELECT empid,lastname
    2 FROM HR.Employees
    3 WHERE lastname LIKE N'[^A-E]%';

    ESCAPE(转义)字符

      如果想搜索包含特殊通配符的字符串(例如'%'、'_'、'['、']'),则必须使用转义字符。指定一个确保不会在数据中出现的字符作为转义字符,把它放在待查找的字符串前面,并紧接着模式字符串,在ESCAPE关键字后面指定该转义字符。例如,要检查lastname的列中是否包含下划线,可以使用下列代码进行查询:

    1 SELECT empid,lastname
    2 FROM HR.Employees
    3 WHERE lastname LIKE'%!_%'ESCAPE'!';

      另外,对于通配符'%'、'_'、和'['(左方括号),可以把它们放在方括号内,而不必使用转义字符。例如,除了使用lastname LIKE '%!_%' ESCAPE '!'以外,还可以使用lastname LIKE '%[_]%'。

  • 相关阅读:
    C#后台利用正则表达式查找匹配字符
    C# Dictionary 的几种遍历方法
    eval解析JSON中的注意点
    jquery datatables api (转)
    Replication--镜像+复制
    Replication--分区+复制
    Replication--进程无法在“xxxx”上执行“sp_replcmds”
    Replication--无法将事务提升为分布式事务,因为在事务中有活动的保存点
    Replication--使用MSlogreader_history查看日志读起的延迟和事务命令
    Partition--分区拆分和分区合并
  • 原文地址:https://www.cnblogs.com/ShaYeBlog/p/2701285.html
Copyright © 2011-2022 走看看