【SQL sever】exists关键字

exists关键字是用来判断查询结果是否存在,当查询存在结果时则返回真,否则返回假。not exists则相反。

使用子查询进行存在性测试时,一般使用exists谓词。带着个谓词的子查询不返回查询的数据,只返回逻辑真值与假植
select Sname from student

Where exists

Select * from SC where sno = Student.sno and Cno =’01’)

exists的谓词的查询是先执行外层查询,然后再执行内存查询,外层查询的值决定了内层查询的结果,内层查询的执行次数由外层查询的结果数决定。

上述查询语句的处理过程为:

1)    先查找外层表student的第一行,根据Sno值来处理内层查询

2)    用外层的值来执行内层查询,如果有符合条件的数据,则exists返回真值,否则返回假值。如果exists返回真,则外层结果中的当前行数据位符合条件的结果;否则,是不符合条件的结果

3)    顺序处理外层表student表中的第2,3,。。。行数据,直到处理完所有行

 

select a.* from 成绩信息 a

where exists(select * from 考试安排 where b.考试编号=a.考试编号 and b.考试编号 '0801')

操作查询--exists关键字查询

exists中采用子查询,如果在考试安排b表中查询到考试编号有0801,且a表中考试编号也有0801,则返回真,那么就把a表中所有满足查询条件的信息显示出来

declare @username varchar(20) //声明了用户名变量

declare @psd varchar(20)//声明了密码变量

set @username = '2005040102'//赋值

set @psd='苏普秀'

if exists(select * from 学生信息 where 学号=@username and 姓名=@psd)

//如果学生信息表中学号为2005040102,姓名为苏普秀的条目存在的话,返回真

print '登陆成功'

//打印出信息

else

print '登陆失败'

操作查询--exists关键字查询

转载:http://blog.sina.com.cn/s/blog_68b156d50101jsev.html

原文地址:https://www.cnblogs.com/Zoeun/p/13026068.html