子查询使用父查询变量_使用子查询-1

子查询使用父查询变量

使用子查询

==================

子查询通常称为嵌套SELECT,Sub-SELECT或内部SELECT语句。

子查询在主查询之前执行一次。

子查询的结果由主查询(外部查询)使用。

您可以将子查询放在许多SQL子句中。

WHERE子句

HAVING子句

FROM子句(内联子查询/内联视图)

1.嵌套查询必须返回一个单列。

2.运算符之间不能在子查询中使用。

3.结果只能包含最外部查询中引用的表中的列。

子查询的类型

---------------------------

单行子查询:-

从内部SELECT语句仅返回一行的查询。

多行子查询:-

从内部SELECT语句返回多个行。

注意:

---------

比较运算符分为两类。 :

单行运算符(>,> =,=,<>,<,<=)

多行运算符(IN,ANY,SOME,ALL)

句法

---------

SELECT select_list FROM表

WHERE expr运算符(SELECT select_list FROM表);

**请勿在子查询中添加ORDER BY子句。

*对单行子查询使用单行运算符。

*对多行子查询使用多行运算符。

单行子查询的示例示例:-

================================

例子1

谁比empno 7566收入更多


SELECT *  FROM emp WHERE sal >(SELECT sal FROM emp WHERE empno=7566); 
范例#2

显示工作等于7369的员工的详细信息


SELECT * FROM emp
WHERE job= (SELECT job FROM emp WHERE empno=7369); 
例子#3

显示其职务与雇员7369相同且工资高于雇员7876的雇员。


SELECT * FROM emp WHERE job= (SELECT job FROM emp
WHERE empno=7369)  AND Sal > ( SELECT Sal FROM emp WHERE  empno=7876); 
在子查询中使用组功能

================================

例子1

--------------------

显示所有工资等于最低工资的雇员的详细信息。


 SELECT * FROM emp
WHERE sal = (SELECT MIN(sal) FROM emp); 
Exp:-MIN组函数向外部查询返回单个值(800)。

通过在子查询中使用组函数返回单行来显示来自主查询的数据。

对子查询使用HAVING子句***************

Oracle Server将结果返回到主查询的HAVING子句中。

范例#2

------------------------

显示所有最低工资高于部门20的MIN(Sal)的部门;


SELECT deptno, MIN(sal) FROM emp GROUP BY deptno HAVING MIN(sal) >
( SELECT MIN(sal) FROM emp WHERE deptno=20); 
deptno = 20的最低工资是800。

即子查询是800

主查询比较MIN(sal)> 800;

例子#3

----------------------

找到平均薪水最低的工作。


SELECT job, AVG(sal) FROM emp GROUP BY job
HAVING AVG(sal) = (SELECT  MIN(AVG(sal)) FROM emp GROUP BY job); 
同时检查使用子查询-2

翻译自: https://bytes.com/topic/oracle/insights/739004-using-subqueries-1-a

子查询使用父查询变量

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值