求关于ORACLE中sql语句的子查询,select中的子查询详解,最好有个例子来叙述执行的步骤,谢谢! 15
3个回答
展开全部
嵌套的子查询值一般都是唯一的,也就是只有一个值,不过,也有多个值。
如: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='张三')
执行步骤都是先查出子查询的值,然后,把子查询值作为条件值,放到主查询的条件中。
如: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='张三')
执行步骤都是先查出子查询的值,然后,把子查询值作为条件值,放到主查询的条件中。
展开全部
示例
还可用子查询中的表名别名来查询子查询外的 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
,然后再做外面的一层
还可用子查询中的表名别名来查询子查询外的 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
,然后再做外面的一层
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如有两张表 职工表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后面跟的是条件,条件如果存在查询就算是子查询,具体见例子
现在要查询工资大于5000的职工的姓名
SELECT NAME FROM E WHERE ID IN (SELECT ID FROM W WHERE WAGE>5000)
----------------------
SELECT NAME FROM E 是主查询
where后面跟的是条件,条件如果存在查询就算是子查询,具体见例子
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询