发布网友 发布时间:2022-04-20 15:12
共2个回答
懂视网 时间:2022-04-09 01:02
例:
2、多行子查询:多行子查询即是子查询的返回结果是多行数据。当主查询语句的条件语句中引用子查询结果时必须用多行比较符号(IN,ALL,ANY)来进行比较。其中,IN的含义是匹配子查询结果中的任一个值即可("IN" 操作符,能够测试某个值是否在一个列表中),ALL则必须要符合子查询的所有值才可,ANY要符合子查询结果的任何一个值即可。而且须注意ALL 和ANY 操作符不能单独使用,而只能与单行比较符(=、>、< 、>= 、<= 、<>)结合使用。
例:
1).多行子查询使用IN操作符号例子:查询选修了老师名叫Rona(假设唯一)的学生名字
查询所有部门编号为A的资料:
2).多行子查询使用ALL操作符号例子:查询有一门以上的成绩高于Kaka的最高成绩的学生的名字:
3). 多行子查询使用ANY操作符号例子:查询有一门以上的成绩高于Kaka的任何一门成绩的学生的名字:
3、多列子查询:当是单行多列的子查询时,主查询语句的条件语句中引用子查询结果时可用单行比较符号(=, >, <, >=, <=, <>)来进行比较;当是多行多列子查询时,主查询语句的条件语句中引用子查询结果时必须用多行比较符号(IN,ALL,ANY)来进行比较。
例:
4、内联视图子查询
例:
5、在HAVING子句中使用子查询
例:
SQL嵌套SELECT语句的用法-
标签:
热心网友 时间:2022-04-08 22:10
可以
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里的一列的列名。
参考资料来源:
搜狗百科
-子查询