子查询:将用来定义视图的SELECT语句直接用于FROM子句中。

SELECT <列名1>, <列名2>, …
FROM (<SELECT语句>) AS <视图名称>;
/*
内层的SELECT语句会先执行;
Oracle的FROM子句中不能使用AS,直接删除即可;
*/

上述代码等价于:

CREATE VIEW 视图名称(<视图列名1>, <视图列名2>, …)
AS
<SELECT语句>

标量子查询

返回单一值的子查询是标量子查询,即必须且只能返回1行1列的结果。能够使用常数或列名的地方,无论是SELECT子句、GROUP BY子句、HAVING子句,还是ORDER BY子句,几乎所有的地方都能使用(SELECT标量子查询)。

例:在SELECT子句中使用标量子查询

SELECT product_id, product_name, sale_price,(SELECT AVG(sale_price)FROM Product) AS avg_price-- 标量子查询
FROM Product;

标量子查询不能返回多行结果:

SELECT product_id, product_name, sale_price,(SELECT AVG(sale_price)FROM ProductGROUP BY product_type) AS avg_price-- 该子查询返回了多行结果,产生错误
FROM Product;

关联子查询

在细分的组内进行比较时,需要使用关联子查询。

例:关联子查询

SELECT <列名1>, <列名2>, …
FROM <表名> AS <别名1>
WHERE <列名2> > (SELECT <表达式>FROM <表名> AS <别名2>WHERE <别名1>.<列名1> = <别名2>.<列名1>);-- 关联子查询可对集合根据<列名1>进行切分
SELECT product_id, product_name, sale_price,(SELECT AVG(sale_price)FROM Product AS P2WHERE P1.product_type = P2.product_typeGROUP BY P1.product_type) AS avg_sale_price-- 该关联子查询可当作加了条件的标量子查询
FROM Product AS P1;

关联子查询中别名的作用范围为子查询内部。

参考资料

《SQL基础教程》(第2版)[日] MICK著;孙淼,罗勇译

SQL子查询和关联子查询相关推荐

  1. server多笔记录拼接字符串 sql_第四章、SQL Server数据库查询大全(单表查询、多表连接查询、嵌套查询、关联子查询、拼sql字符串的查询、交叉查询)...

    4.1.查询的类型 declare @value as int set @value = 50 select  'age:'as age,2008 years,@valueas va --这种查询时跟 ...

  2. order by 子查询_视图,子查询,标量子查询,关联子查询

    视图 子查询 标量子查询 关联子查询 如何用SQL解决业务问题 各种函数 1. 视图 视图内存放SQL查询语句,运行时运行该语句.查出的数据为临时数据 创建视图 create view as 视图名称 ...

  3. Oracle 数据库的子查询(关联子查询)

    文章目录 一.子查询结果返回一个值(单列单行) 二.子查询结果返回多行(单列多行) 三.子查询结果返回多列多行 四.关联子查询 (一)子查询执行顺序 (二)exists 关键字 五.子查询总结 六.关 ...

  4. exist-in和关联子查询-非关联子查询

    对于exist和in,大家的一致看法如下:     1.in是子查询为驱动表,外面的表为被驱动表,故适用于子查询结果集小而 外面的表结果集大的情况.     2.exists是外面的表位驱动表,子查询 ...

  5. 记录一下sql两个表关联的查询使用方法

    SELECT * FROM t_yymp_user_info where user_id = (select b.user_id from t_yymp_auth_role as a,t_yymp_a ...

  6. SQL中的关联子查询

    目录 关联查询 例子 分解相关的嵌套查询 与不同的表一起使用 关联子查询与内部联接 哪个更快? 哪个更容易阅读? 哪一个更好? HAVING子句中的关联子查询 在本文中,我们将查看几个示例并将关联子查 ...

  7. python中and与or的执行顺序-关联子查询的执行顺序是什么

    sql的编写顺序 select .. from .. where .. group by ..having .. order by .. sql的执行顺序 from .. where .. group ...

  8. Oracle 的关联子查询(correlated subquery) 简介.

    相信 接触过 ocp考题既, 都会见到 correlated subquery的字眼. correlated subquery的中文名称就是相关子查询呢? 1. 什么是子查询 这个很简单,  子查询就 ...

  9. 【SQL】(task3)复杂查询(视图 | 子查询 | 谓词 | Case)

    学习总结 (1)视图和子查询.对于一些复杂的查询需要使用子查询加一些条件语句组合才能得到正确的结果.一个SQL语句的层数不能过深,不然可读性差而且执行效率也难以保证,所以尽量有简洁的语句来完成需要的功 ...

最新文章

  1. C#正则表达式匹配字符串中的数字
  2. php里面执行python,在php中执行python
  3. java 事件驱动 netty_Netty2-事件驱动的NIO框架(使用范例)
  4. c++堆内存默认大小_C++|array new 和 array delete的堆内存细节
  5. 转:RabbitMQ 消息队列特性知多少
  6. mongodb查询内嵌文档
  7. Bootstrap 工具提示插件Tooltip的方法
  8. mysql 数据类_MySQL数据类型
  9. fastapi 的启动方式
  10. 3. Longest Substring Without Repeating Characters
  11. 暴力解决配置HTTPS后无法使用Hermit
  12. 操作系统实验报告(一) 进程管理与进程通信
  13. blazeds_Spring BlazeDS集成:它是什么,它会发生什么变化?
  14. 好用的在线ide------ideone
  15. win7计算机未连接网络,教你w7电脑本地连接受限制或无连接的七种解决方法
  16. 魔门云获得百万级天使轮投资,由创客100创投基金领投
  17. 2021-10-11 今日总结
  18. win7系统问题:——桌面壁纸变黑解决方案
  19. 半角和全角的区别 java_全角和半角区别
  20. 怎样使控件的背景色为透明色?

热门文章

  1. 21.拉格朗日中值定理柯西中值定理
  2. 两位程序员 + 60天 = 玩到停不下来的H5游戏!
  3. 无法找到来自源 nvlddmkm 的事件 ID 14 的描述
  4. 关于javax.validation.Validator校验的使用
  5. Jsp中onBlur事件在引入jqury后提示函数失效
  6. InitializingBean详解与用法
  7. 上海期货计算机公司排名,双创实践行 ——记2017级计算机与金融工程实验班同学参观上海期货交易所...
  8. python商品打折问题_python初学者-商品折扣问题
  9. JS判断时间先后顺序
  10. 成长相册项目小结----js