SQL中SELECT中的FROM子句可否带另外一个SELECT

关系运算的结果也是关系,那么这样的句子对不对? SELECT * FROM (SELECT ... ) WHERE ... 也就是说把FROM后面的SELECT子句的运算结果当作一个表来用.

可以
SQL中SELECT嵌套
SELECT语句
是很常见的
SQL语句
,嵌套SELECT语句也叫
子查询
,一个SELECT
语句的查询结果能够作为另一个语句的输入值。子查询不但能够出现在Where子句中,也能够出现在from子句中,作为一个
临时表
使用,也能够出现在select
list中,作为一个字段值来返回。
例1:select子查询出现在Where子句中
select
ename,deptno,sal
from
emp
where
deptno=(select
deptno
from
dept
where
loc='NEW
YORK');
例2:select子查询出现在from子句中
SELECT
ename,job,sal,rownum
FROM
(SELECT
ename,job,sal
FROM
EMP
ORDER
BY
sal);
例3:select子查询出现在select
list中,作为一个字段值来返回
SELECT
ename,job,sal
FROM
EMP
WHERE
deptno
in
(
SELECT
deptno
FROM
dept
WHERE
dname
LIKE
'A%');
扩展资料
在select子句里能支持直接嵌套一个select子查询,但是该select子查询返回的
结果集
必须是单行,返回多
行时
会提示ORA-01427:
single-row
subquery
returns
more
than
one
row(ORA-01427:
单行子查询返回多个行
):
select
(
SELECT
id
from
data_
dictionary
where
id=1)
From
v_photosum_attach
;
select
(
SELECT
id
from
data_dictionary
where
id=lock_purpost)
From
v_photosum_attach
;
注释:lock_purpost是表v_photosum_attach里的一列的列名。
参考资料来源:
搜狗百科
-子查询
温馨提示:答案为网友推荐,仅供参考