WITH AS短语使用 不支持mysql 支持postgresql,oracle等 可以优化多表连接查询

     ‘WITH AS短语也叫做子查询因子(subquery factoring),主要作用是定义一个SQL片段,该片段会被SQL语句中的其它部分应用到。
主要作用:
     1.使SQL语句的可读性更高一些。(感觉像编程中的本地变量概念,定义好之后,很多地方都可以使用)。
   2.提高查询效率。特别是对于UNION ALL和子查询被多次引用的时候。如果UNION ALL的很多部分可能相同,如果每个相同的部分都去执行一遍的话,成本很高,而使用WITH AS短语的话,则相同的部分只会执行一遍。执行方式是如果只被调用一次的话,那么和子查询一样,但是一遍以上的话,则会把WITH AS的数据插入到一个临时表中,这样的话,效率就会大幅度的提高。(这点和本地变量的概念还是一样的,本地变量被赋值了之后,后面调用的都是值,而原来的子查询则像方法调用,每次都是调用一遍,这样性能自然会差一些。)


      使用举例:


       with sample as (


       select aaa,bb,ccc from test where dd = ddd


       )  


       select bb from sample

你可能感兴趣的:(WITH AS短语使用 不支持mysql 支持postgresql,oracle等 可以优化多表连接查询)