【SQL Server】模糊查询
前言
在实际应用中,如果需要从数据库中检索数据,但又不能给出准确的字符串查询条件时,就可以使用like运算符和通配符来实现模糊查询。在like运算符前面可以使用not运算符,表示对结果取反。
基本内容
在这里涉及到一个like运算符和匹配字符串,它们的结合就构成了我们的模糊查询语句。
基本格式:列名 like 匹配串 ,符匹配串中可以包含普通字符,也可以包含通配符。
通配符:可以表示任意的字符或字符串,下面请看四种通配符所代表的含义。
1._(下划线):匹配任意一个字符。
2.%(百分号):匹配零个或多个字符。
3.[](大括号):匹配[]中任意一个字符。如[acdg]表示匹配a、c、d、g中的任何一个。若要比较的字符是连续的,则可以用连字符“-”表示。例如,若要匹配b、c、d、e中的任何一个字符,则可以表示为:[b-e],b字母至e字母中间的任意一个。
4.[^]:不匹配[]中的任意一个字符。如[^acdg]表示不匹配a、c、d、g。同样,要比较的字符是连续的,也可以用连字符“-”表示。
实例应用
查询姓张的学生的详细信息:
Select * from student where Sname like '张%'
查询不姓张的学生的详细信息:
Select * from student where Sname not like '张%'
查询姓张、李、刘的学生的详细信息:
Select * from student whereSname like '[张李刘]'
查询名字的第二个字为“大”或“小”的学生的姓名和学号:
Select sname,sno from student where Sno like '_[小大]'
查询student表中学号的最后一位不是2,3,5的学生的详细信息:
Select * from student where Sno like '%[^235]'
特别提示
如果要查找的字符串中正好含有通配符,比如下划线或百分号,就需要使用ESCAPE子句来标识。
格式:ESCAPE 转义字符
其中,转义字符是任何一个有效的字符,在匹配串中也包含这个字符,表明位于该字符后面的那个字符将被视为普通字符,而不是通配符。
例如,在fild字段中查找包含字符串30%的记录,可在where子句中指定:
Where field1 Like '%30!%%' ESCAPE '!'
又如,在field1字段中查找包含下划线(_)的记录,可在Where子句中指定:
Where field1 like '%!_%'ESCAPE '!'
结语
数据库的模糊查询可以让你在庞大的数据面前,轻松的找到自己需要的数据,多多积累。
【SQL Server】模糊查询相关推荐
- sql server模糊查询、分组
一.系统函数 1.convert(类型[length] ,表达式[,样式]) 2.isnull(表达式,默认值) 字符函数: len() 长度 ltrim()|rtrim()去除左右空格 ...
- sql server 模糊查询
模糊查询--like select * from 表名where id like '%2%' select * from 表名where id like 'd%%' escape 'd' 查询时,字 ...
- SQL Server 2016 查询存储性能优化小结
SQL Server 2016已经发布了有半年多,相信还有很多小伙伴还没有开始使用,今天我们来谈谈SQL Server 2016 查询存储性能优化,希望大家能够喜欢 作为一个DBA,排除SQL Ser ...
- SQL Server数据库查询速度慢的原因和解决方法
SQL Server数据库查询速度慢的原因和解决方法 参考文章: (1)SQL Server数据库查询速度慢的原因和解决方法 (2)https://www.cnblogs.com/MyChange/p ...
- 优化SQL Server数据库查询方法
本文详细介绍了优化SQL Server数据库查询方法. SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) ...
- SQL Server 2000查询n到m条记录
SQL Server 2000查询n到m条记录? (1)select top m * from tablename where id not in (select top n id from tabl ...
- SQL Server 2005查询处理结构-用户模式计划(UMS)
SQL Server 2005查询处理结构-用户模式计划(UMS) 在对数据库进行性能调优时,必须全面的考虑各种可能造成系统性能瓶颈的各种因素,因此深入了解SQL Server 2005的查询处理机构 ...
- SQL Server数据库查询区分大小写、全半角——排序规则的应用(转载)
SQL Server数据库查询区分大小写.全半角--排序规则的应用 因为偶然的原因,需要在INNER JOIN联表时,让对应字段进行区分大小写的比较.而默认情况下建立的Sql Server数据库是不区 ...
- SQL server management 查询所有触发器
SQL server management 查询所有触发器 SQL server management 查询所有触发器 SELECT OBJECT_NAME(a.parent_obj) AS [表名] ...
- SQL Server 语句查询手册
建表: CREATE TABLE [DB.dbo].tableName (Stud_id int CONSTRAINT constraintName1 not null primary key, ...
最新文章
- 相参、相参积累和相参雷达
- Trie实现(C++)
- poj hdu Tian Ji -- The Horse Racing 贪心
- Spring Data Solr教程:Solr简介
- SpringBoot整合Encahce后,访问页面页面出现异常信息,无法获取返回数据
- 用Lightroom Classic CC2019 mac合并照片以创建全景和HDR全景
- Lambda表达式只是一颗语法糖?
- LLVM CLANG 3.1 GCC 4.7 INTEL CORE I7 BENCHMARKS
- php5 ereg,ereg / eregi替代PHP 5.3
- 机器学习预测股票涨跌
- 如何复制他人csdn博客文章到自己博客下
- Win10红警如何关闭3d加速?
- 一招技巧解决360搜索结果页展示网站LOGO
- 集中式存储和分布式存储
- 地理生物结业考_今年我初二,明天我地理生物结业考,但是我现在啥都不会,我应该怎么办?...
- python代码缩进和冒号_Python缩进和冒号详解
- netsh interface portproxy本地ip与端口映射及本地虚拟ip(windows)
- DBA的职业发展机会
- 网页无法打开, 位于 https://xxx 的网页无法加载,因为:net::ERR_NAME_NOT_RESOLVED
- Pytorch:优化器、损失函数与深度神经网络框架