zoukankan      html  css  js  c++  java
  • SQL 通配符

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

    SQL 通配符
    在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。

    SQL 通配符必须与 LIKE 运算符一起使用。

    在 SQL 中,可使用以下通配符:

    通配符 描述
    % 替代一个或多个字符
    _ 仅替代一个字符
    [charlist] 字符列中的任何单一字符
    [^charlist]

    或者

    [!charlist]
     不在字符列中的任何单一字符

    原始的表 (用在例子中的):
    Persons 表:

    Id LastName FirstName Address City
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing

    使用 % 通配符
    例子 1
    现在,我们希望从上面的 "Persons" 表中选取居住在以 "Ne" 开始的城市里的人:

    我们可以使用下面的 SELECT 语句:

    SELECT * FROM Persons
    WHERE City LIKE 'Ne%'结果集:
    Id LastName FirstName Address City
    2 Bush George Fifth Avenue New York

    例子 2
    接下来,我们希望从 "Persons" 表中选取居住在包含 "lond" 的城市里的人:

    我们可以使用下面的 SELECT 语句:

    SELECT * FROM Persons
    WHERE City LIKE '%lond%'结果集:
    Id LastName FirstName Address City
    1 Adams John Oxford Street London

    使用 _ 通配符
    例子 1
    现在,我们希望从上面的 "Persons" 表中选取名字的第一个字符之后是 "eorge" 的人:

    我们可以使用下面的 SELECT 语句:

    SELECT * FROM Persons
    WHERE FirstName LIKE '_eorge'结果集:
    Id LastName FirstName Address City
    2 Bush George Fifth Avenue New York

    例子 2
    接下来,我们希望从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er":

    我们可以使用下面的 SELECT 语句:

    SELECT * FROM Persons
    WHERE LastName LIKE 'C_r_er'结果集:
    Id LastName FirstName Address City
    3 Carter Thomas Changan Street Beijing

    使用 [charlist] 通配符
    例子 1
    现在,我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:

    我们可以使用下面的 SELECT 语句:

    SELECT * FROM Persons
    WHERE City LIKE '[ALN]%'结果集:
    Id LastName FirstName Address City
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York

    例子 2
    现在,我们希望从上面的 "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人:

    我们可以使用下面的 SELECT 语句:

    SELECT * FROM Persons
    WHERE City LIKE '[!ALN]%'结果集:
    Id LastName FirstName Address City
    3 Carter Thomas Changan Street Beijing

    一、搜索通配符字符的说明
    可以搜索通配符字符。有两种方法可指定平常用作通配符的字符:

    使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用:
    WHERE ColumnA LIKE '%5/%%' ESCAPE '/'

    在上述 LIKE 子句中,前导和结尾百分号 (%) 解释为通配符,而斜杠 (/) 之后的百分号解释为字符 %。

    在方括号 ([ ]) 中只包含通配符本身。要搜索破折号 (-) 而不是用它指定搜索范围,请将破折号指定为方括号内的第一个字符:
    WHERE ColumnA LIKE '9[-]5'

    下表显示了括在方括号内的通配符的用法。

    符号 含义
    LIKE '5[%]' 5%
    LIKE '5%' 5 后跟 0 个或更多字符的字符串
    LIKE '[_]n' _n
    LIKE '_n' an, in, on (and so on)
    LIKE '[a-cdf]' a, b, c, d, or f
    LIKE '[-acdf]' -, a, c, d, or f
    LIKE '[ [ ]' [
    LIKE ']' ]


    二、实例说明:

    在表PersonalMember中查找strloginname字段中含有"["的记录。


    可用三条语句:
    1、
    select strloginname,* from PersonalMember where strloginname like '%\[%' escape '\'

    2、(说明"\"与"/"均可与escape关键字结合作为转义符)
    select strloginname,* from PersonalMember where strloginname like '%/[%' escape '/'

    3、
    select strloginname,* from dbo.PersonalMember where charindex('[',strloginname)>0

  • 相关阅读:
    解析大型.NET ERP系统 权限模块设计与实现
    Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架
    解析大型.NET ERP系统 单据编码功能实现
    解析大型.NET ERP系统 单据标准(新增,修改,删除,复制,打印)功能程序设计
    Windows 10 部署Enterprise Solution 5.5
    解析大型.NET ERP系统 设计异常处理模块
    解析大型.NET ERP系统 业务逻辑设计与实现
    解析大型.NET ERP系统 多国语言实现
    Enterprise Solution 管理软件开发框架流程实战
    解析大型.NET ERP系统 数据审计功能
  • 原文地址:https://www.cnblogs.com/netcorner/p/2911924.html
Copyright © 2011-2022 走看看