sqlsever2019:where子句讲解(三:like关键字)

x33g5p2x  于2021-12-27 转载在 其他  
字(1.2k)|赞(0)|评价(0)|浏览(251)

一、前言语法

like是用来匹配关键字的,意识是如果一段字符某个关键字,这一段字符就能被匹配查询到。跟我们正则表达式简单多了。具体看下面例子。

基本语法:
通配符%:可以匹配多个或多个字符的任意字符串
_下划线:匹配任何单个字符
[]:匹配指定范围或集合的任何单个字符
[^]:不属于指定范围火集合的任何单个字符
between:指定范围之间

二、实例一

在Emploee表中查询性“肖”的员工信息。

use db_Test
select * from Employee
where name like'肖%' --使用like和通配符%

演示:

二、实例二

交流群:696774324

在Employee表中查询性“章”并且最后一个字是“婷”的员工信息。

select * from Employee
where name like'章_婷'

演示:

三、实例三

在Employee表中查询Age在25到27之间的员工信息。

select * from Employee
where Age like '2[5-7]'

演示:

[5-7]意思就是五到七的意思。

四、实例四

在Employee表中查询Age不在25-27之间的员工信息。

select * from Employee
where Age like '2[^5-7]'

演示:

五、实例五

用between…and查询Age在25到27之间的员工信息。

select * from Employee
where Age between 25 and 27

演示:

六、实例六

is(not) null关键字用于对空值判断。具体举例如下:
少选性别为空的人

select * from Employee
where Sex is null

查询性别不为空的人:

select * from Employee
where Sex is  not null

演示:

七、实例七

in关键字用来指定列表的搜索条件,确定指定的值是否与子查询或列表中的值相匹配。
举例:在Employee表中查询Id是001,002和003的员工信息。

select * from Employee
where ID in('001','002','003')

演示:

同样的道理,如果不是在这些id,则:

select * from Employee
where ID not in('001','002','003')

演示:

再来个例子,比如查询表中年龄大于雨欣和雨涵的员工信息:

select * from Employee
where Age > all
(
select Age from Employee
where Name in ('雨欣','雨涵')
)

演示:

age>all是大于雨欣和雨涵的的年龄最大值。

八、实例八

exists关键字用于指定一个子查询,测试行是否存在。
举例子如下:
在子查询中指定了结果集为null,并且使用exists求值,此时值仍然为true.

select * from Employee  --把所有的打印出来看看
select ID,Name from Employee
where exists(select null)  --筛选备注为空的

演示:

相关文章