首页 > 数据库技术 > 详细

Oracle子查询

时间:2016-09-20 21:12:01      阅读:203      评论:0      收藏:0      [点我收藏+]

select * from teacher

--招生部门所有男老师姓名
--teacher表中有 招生部吗 ? 有的是编号!
--01.查询 招生部对应的编号
select dname,deptno from dept where dname=‘招生部‘
--02.那么只要是部门编号是20的 就是招生部
select tname,deptno
from teacher
where deptno=(select deptno from dept where dname=‘招生部‘)

--所有老师姓名、部门
--怎么把deptno转换成dname
select tname,deptno from teacher
select dname from dept
--把deptno换成上面的语句
--子查询作为了 列名
select tname,(select dname from dept where deptno=t.deptno) as 部门
from teacher t

--所有在招生部、人力部的老师列表
select deptno,tname from
teacher
where deptno in
(select deptno from dept where dname in(‘招生部‘,‘人力部‘))


--使用exists 用来检查子查询是否返回一个数据 性能比in高
--使用exists 代替in 使用not exists代替 not in
--exists并不返回实际的数据 而是返回 true或者false
select deptno,tname from
teacher where exists
(select deptno from dept
where
deptno=teacher.deptno and dname in(‘招生部‘,‘人力部‘))

 

Oracle子查询

原文:http://www.cnblogs.com/liu-chao-feng/p/5890331.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!