`

子查询因子化

阅读更多

子查询因子化 也被称为 公共表表达式(comman tableexpression ),

我们通过使用WITH语句将查询分解为易于理解的块。

举一个简单的例子:

WITH TEST1 AS(
SELECT * FROM alias
WHERE DEST_URL  ='/a-page'
),
test2 AS(
SELECT * FROM alias
WHERE DEST_URL  = '/b-page'
)
SELECT * FROM TEST1,test2;

 

注意如果定义多个with子句,子句之间必须用逗号分隔,而且必须在子句后面接上查询语句,

而且查询语句必须全部包含你所定义的with子句。否则的话要报错。

 

这样的话,虽然sql代码量没怎么变化,但是可读性和可维护性大大增强了。

 

分享到:
评论

相关推荐

    Oracle SQL高级编程

    编辑推荐 《Oracle SQL高级编程》:...第10章 子查询因子化 254 第11章 半联结和反联结 292 第12章 索引 334 第13章 SELECT以外的内容 360 第14章 事务处理 386 第15章 测试与质量保证 415 第16章 计划稳定性与控制 443

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    10.2.5 将子查询因子化应用到PL/SQL中 270 10.3 递归子查询 273 10.3.1 一个CONNECT BY的例子 274 10.3.2 使用RSF的例子 275 10.3.3 RSF的限制条件 276 10.3.4 与CONNECT BY的不同点 276 10.4 复制CONNECT BY...

    Microsoft SQL Server 2008技术内幕:T-SQL查询(第二卷)

    主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...

    海量数据库解决方案_韩国_李华植

    3.2.5.2 修改子查询执行计划191 3.2.5.3 特殊类型的执行计划193 3.3 执行计划的控制203 3.3.1 提示的活用准则204 3.3.2 使用提示实现最优化目标206 3.3.3 使用提示改变表连接顺序207 3.3.4 表连接方式选择过程中提示...

    SQLServer2008技术内幕T-SQL查询包含源代码及附录A

    主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...

    Microsoft_SQL_Server_2005技术内幕:T-SQL查询.pdf

    本书是Inside Microsoft SQL Server ...第4章 子查询、表表达式和排名函数 第5章 联接和集合操作 第6章 聚合和旋转数据 第7章 TOP和ALLPY 第8章 数据修改 第9章 图、树、层次结构和递归查询 附录A 逻辑难题 索引

    Microsoft+SQL+Server+2008技术内幕:T-SQL查询_源代码及附录 中文版

    主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...

    热力井智能监控系统解决方案共16页.pptx

    热力井智能监控系统由前端部分来完成对监测因子的监测,同时完成汇总、转换、传输等工作,监测因子包括井盖状态(开闭)、井下液位高度、温度等,这些监测因子由数据采集终端使用不同的方法进行测量获得一个非常准确...

    Beaglebone Black 的 快速模拟传感器捕获_C语言_代码_相关文件_下载

    Beaglebone Black 处理器具有内置的 ADC 单元,在文档中技术上称为“触摸屏/ADC 子系统”。它可用于捕获模拟信号并将其数字化。单元最多支持 8 个输入。(顺便说一下,只有一个 ADC 芯片,并且通过多路复用引脚顺序...

    海量数据库解决方案_韩国_李华植_Part02

    3.2.5.2 修改子查询执行计划191 3.2.5.3 特殊类型的执行计划193 3.3 执行计划的控制203 3.3.1 提示的活用准则204 3.3.2 使用提示实现最优化目标206 3.3.3 使用提示改变表连接顺序207 3.3.4 表连接方式选择过程中提示...

    java源码包---java 源码 大量 实例

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java源码包2

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java源码包3

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java源码包4

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

Global site tag (gtag.js) - Google Analytics