求关于ORACLE中sql语句的子查询,select中的子查询详解,最好有个例子来叙述执行的步骤,谢谢! 15

 我来答
天网飞狐
2014-04-16 · 超过27用户采纳过TA的回答
知道答主
回答量:94
采纳率:100%
帮助的人:29.7万
展开全部
嵌套的子查询值一般都是唯一的,也就是只有一个值,不过,也有多个值。
如:select a.id,a.name from test a where a.id=(select id from testname where name='张三')
当子查询是多个值时为条件时:
select a.id,a.name from test a where a.id in (select id from testname where name='张三')

执行步骤都是先查出子查询的值,然后,把子查询值作为条件值,放到主查询的条件中。
tj_angela
2014-04-16 · TA获得超过7529个赞
知道大有可为答主
回答量:6797
采纳率:75%
帮助的人:2514万
展开全部
示例
还可用子查询中的表名别名来查询子查询外的 FROM 子句的列表。下列示例返回工资等于或高于所有职位相同员工的平均工资的员工姓名。这张员工表的别名为 "T1":
SELECT LastName,
FirstName, Title, Salary
FROM Employees AS T1
WHERE Salary >=
(SELECT Avg(Salary)
FROM Employees
WHERE T1.Title = Employees.Title) Order by Title;

-----------
先做的是
SELECT Avg(Salary)
FROM Employees
WHERE T1.Title = Employees.Title
,然后再做外面的一层
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leijiang198708
2014-04-17 · 超过19用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:25.9万
展开全部
比如有两张表 职工表E (有两个字段 ,工号 ID ,姓名 name )和工资表 W(有两个字段 工号 ID和 工资 wage)

现在要查询工资大于5000的职工的姓名

SELECT NAME FROM E WHERE ID IN (SELECT ID FROM W WHERE WAGE>5000)
----------------------
SELECT NAME FROM E 是主查询
where后面跟的是条件,条件如果存在查询就算是子查询,具体见例子
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式