博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
T-SQL:毕业生出门需知系列(六)
阅读量:5101 次
发布时间:2019-06-13

本文共 1634 字,大约阅读时间需要 5 分钟。

第6课 用通配符进行过滤

 

6.1 LIKE 操作符

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

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

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

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

 

6.1.1 百分号(%)通配符

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

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

SELECT prod_id, prod_nameFROM ProductsWHERE prod_name LIKE 'Fish%';

 

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

  搜索包含文本 bean bag 的值

SELECT prod_id, prod_nameFROM ProductsWHERE 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_nameFROM ProductsWHERE prod_name LIKE '__ inch teddy bear';--    分析:LIKE 后面跟有文本的两个通配符

   结果:2个

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

SELECT prod_id, prod_nameFROM ProductsWHERE prod_name LIKE '% inch teddy bear';

 

6.1.3 方括号([])通配符

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

 

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

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

  

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

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

 

  方法二:使用 NOT

  例8:

SELECT cust_contactFROM CustomersWHERE NOT cust_contact LIKE '[JM]%';

 

6.2 使用通配符的技巧

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

  【技巧】

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

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

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

 

6.3 小结

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

 

续集:

  

转载于:https://www.cnblogs.com/liqingwen/p/4686017.html

你可能感兴趣的文章
一道不知道哪里来的容斥题
查看>>
Blender Python UV 学习
查看>>
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
python学习4 常用内置模块
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
ResolveUrl的用法
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
一些方便系统诊断的bash函数
查看>>
【转载】基于vw等viewport视区相对单位的响应式排版和布局
查看>>
<转>关于MFC的多线程类 CSemaphore,CMutex,CCriticalSection,CEvent
查看>>
jquery中ajax返回值无法传递到上层函数
查看>>
css3之transform-origin
查看>>
[转]JavaScript快速检测浏览器对CSS3特性的支持
查看>>
Master选举原理
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
小别离
查看>>
微信小程序-发起 HTTPS 请求
查看>>