zoukankan      html  css  js  c++  java
  • T-SQL:毕业生出门需知系列(六)

    第6课 用通配符进行过滤

    6.1 LIKE 操作符

      前面介绍的所有操作符都是针对已知值进行过滤。但是,这种过滤方法并不是任何时候都好用。

      例如:怎样搜索产品名中包含文本 bean bag 的所有产品?

      【注意】通配符搜索只能用于文本字段(字符串),非文本数据类型字段不能使用通配符搜索

      【解析】通配符:用来匹配值的一部分的特殊字符

    6.1.1 百分号(%)通配符

      %:任何字符出现任意次数

      例1:找出所有以词 Fish 起头的产品

    SELECT prod_id, prod_name
    FROM Products
    WHERE prod_name LIKE 'Fish%';

      例2:可以使用多个通配符

      搜索包含文本 bean bag 的值

    SELECT prod_id, prod_name
    FROM Products
    WHERE prod_name LIKE '%bean bag%';

      例3:找出以 F 起头、以 y 结尾的所有产品?

    SELECT prod_name
    FROM Products
    WHERE prod_name LIKE 'F%y';

      【提示】根据部分信息搜索电子邮件

        有一种情况下把通配符放在搜索模式中间是很有用的,就是根据邮件的一部分来查找电子邮件,例如:

        WHERE email LIKE 'b%@qq.com'

      【注意】除了能匹配一个或多个字符外,%还能匹配0个字符。(0,1或多个字符)

      【注意】如果产品后面有一堆空格,'F%y'应改成'F%y%';或者用函数去掉空格

      【注意】WHERE prod_name LIKE '%' 不会匹配 NULL 的行

    6.1.2 下划线(_)通配符

       _:只匹配单个任意字符

       例4:

    SELECT prod_id, prod_name
    FROM Products
    WHERE prod_name LIKE '__ inch teddy bear';
    --    分析:LIKE 后面跟有文本的两个通配符

       结果:2个


       例5:观察使用 % 和 _ 的不同

    SELECT prod_id, prod_name
    FROM Products
    WHERE prod_name LIKE '% inch teddy bear';

    6.1.3 方括号([])通配符

      []:用来匹配一个字符集,它必须匹配指定位置(通配符的位置)中的一个字符

      例6:找出所有名字以 J 或 M 起头的联系人

    SELECT cust_contact
    FROM Customers
    WHERE cust_contact LIKE '[JM]%';
    -- 分析:[JM] 匹配方括号中任意一个字符,它也只能匹配单个字符。[JM]之后的 % 通配符匹配第一个字符之后的所有字符

      

      例7:查询匹配非 J 或 M 字符开头的任意联系人名

    SELECT cust_contact
    FROM Customers
    WHERE cust_contact LIKE '[^JM]%';
    --    分析:通过前缀字符 ^(脱字号)来否定

      方法二:使用 NOT

      例8:

    SELECT cust_contact
    FROM Customers
    WHERE NOT cust_contact LIKE '[JM]%';

    6.2 使用通配符的技巧

      【性能】通配符搜索一般比前面讨论的其它搜索要耗费更长时间。

      【技巧】

        1.不要过度使用通配符。如果其它操作符能达到相同目的,应该使用其它操作符

        2.尽量不要讲它们用在搜索模式的开始处。把通配符置于开始处,搜索起来是最慢的。

        3.仔细注意通配符的位置

    6.3 小结

      通配符的含义、使用及技巧

    续集:

      SQLServer:《SQL必知必会》一书的读书笔记(五)

  • 相关阅读:
    试玩mpvue,用vue的开发模式开发微信小程序
    laravel 整合 swoole ,并简单 ab 测试对比性能以及在 PHPstorm 中利用debug调试配置swoole服务中的PHP代码
    移动端固定头部和固定左边第一列的实现方案(Vue中实现demo)
    PhpStorm 2017.3 版本在 Mac 系统 macOS High Sierra 版本 10.13.3 中运行很卡顿
    xdebug : Debug session was finished without being paused
    SVN checkout 出的项目在PHPstorm中打开没有subversion(SVN)选项按钮怎么办?
    PHP应用的CI/CD流程实践与学习:一、PHP运行环境的准备
    Mac环境下PHPstorm配置xdebug开发调试web程序
    『备忘录』elasticsearch 去重分页查询
    Mac下docker搭建lnmp环境 + redis + elasticsearch
  • 原文地址:https://www.cnblogs.com/liqingwen/p/4686017.html
Copyright © 2011-2022 走看看