- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle高级SQL培训与讲解
Oracle高级SQL培训与讲解 李康康 liakngkang@126.com QQ:353730289 With子句 学习目标 掌握with子句用法,并且了解with子句能够提高查询效率的原因。 With子句要点 with子句的返回结果存到用户的临时表空间中,只做一次查询,反复使用,提高效率。 如果定义了with子句,而在查询中不使用,那么会报ora-32035 错误:未引用在with子句中定义的查询名。 前面的with子句定义的查询在后面的with子句中可以使用。但是一个with子句内部不能 嵌套with子句。 当一个查询块名字和一个表名或其他的对象相同时,解析器从内向外有哪些信誉好的足球投注网站,优先使用子查询块名字。 with查询的结果列有别名,引用的时候必须使用别名或*。 with有可能影响执行计划。 with子句语法 With alias_name as (select1), --as和select中的括号都不能省略 alias_name2 as (select2),--后面的没有with,逗号分割,同一个主查询同级别地方,with子 查询只能定义一次 … alias_namen as (select n) –与下面的实际查询之间没有逗号 Select …. with使用例子: 最简单的使用方法: 如查询部门名称包含“A”的所有员工信息 --with clause with a as (select deptno from dept where dname like %A%) select * from emp where deptno in (select * from a); with a as (select deptno from dept where dname like %A%),--a结果集 a2 as(select * from a where deptno20)--a1结果集直接从a中筛选 select * from emp where deptno in (select * from a2); 多层同级只能用一个with,并且后面的结果集可以使用前面的结果集: 查询部门名称包含“A”并且部门编号大于20的所有员工信息 with a as (select deptno from dept where dname like %A%),--a结果集 a2 as(select * from a where deptno20)--a1结果集直接从a中筛选 select * from emp where deptno in (select * from a2); 不同级查询可以使用多个with: 查询部门名称包含“A”并且部门编号大于20的所有员工信息的另外一种实现方式如下 with a as (select deptno from dept where dname like %A%)--a结果集 select * from emp where deptno in (--括号内层作为子查询,为第二级 with a2 as(select * from a where deptno20)--a1结果集直接从a中筛选 select * from a2 ); 使用场景 那什么情况下能使用到with子句呢?以下我就举几个简单的例子,简单的说明以下: 我想测试一句sql,而我不想专门建立一个测试表: 我想测试成绩大于90的学生,我不想建立学生表,可以用到with子句 with stu as( select 张娜 sname,99 score from dual union select 王杰 ,35 from dual union select 宋丽 ,85 from dual union select 陈晓 ,73 from dual union select 李元 ,100 from dual )--with 组成一个临时的结果集,存放在用户的临时表空间 select * from stu where score90 当一个sql重复用到某个相同的结果集作为子查询: --查询销售部工资1500或者销售部工资小于1000的员工 select * from emp where deptno=(select deptno from dept where dname =SALES) and sal 1500 union all select * from emp where deptno=(select deptno from dept where dname =SALES) and sal 1000 --以上sql select deptno from dept where dname =S
您可能关注的文档
最近下载
- 美国AB变频器说明书 22F Power Flex 4m.pdf VIP
- 初三家长会家长代表发言稿(合集15篇).docx VIP
- 小学科学新苏教版二年级上册1.1 认识常见材料教学课件(2025秋).pptx VIP
- 袋式除尘器过滤材料用各种纤维的特性及其应用.doc VIP
- 初中九年级全套体育教案(共36课).doc VIP
- ASM-IS868LA操作说明书-M215C-CE-rev-A.pdf VIP
- 2.7 变形游戏(课件) 2025冀人版二年级科学上册.ppt
- 第二单元《银屏乐声》第3课时《人世间》+《永志不忘》课件 人音版八年级音乐上册.pptx VIP
- 企业主要负责人安全述职报告.pptx VIP
- 浙教版(2023)四年级上册信息科技 第1课 身边的数据 教案.docx VIP
文档评论(0)