WITH AS 用法 sql

每天一个BUG小技巧

WITH AS短语,也叫做子查询部分(subquery factoring),是用来定义一个SQL片断,该SQL片断会被整个SQL语句所用到。这个语句算是公用表表达式(CTE)。

例:
with A as (select * from class)

select * from A  

先执行select * from class 得到一个结果,将这个结果记录为A ,在执行select *from A 语句。A 表只是一个别名。

将重复用到的大批量 的SQL语句,放到with as 中,加一个别名,在后面用到的时候就可以直接用。对于大批量的SQL数据,起到优化的作用。

v2-114b9ff9e8168c74312a6d87fc2d8593_r.jpg

但是子查询 a 在我们的SQL语句中出现了多次。这种写法不仅存在额外的开销,还使得整个语句显的繁杂。使用 WITH 语句再次重写:

v2-c6311a7a7ccd3576dd806f511d53a66a_r.jpg

If you find a path with no obstacles, it probably doesn’t lead anywhere.
太容易的路,可能根本就不能带你去任何地方。

图片出处https://zhuanlan.zhihu.com/p/272168179

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容