zoukankan      html  css  js  c++  java
  • WITH AS SQL语句的用法

        ‘WITH AS短语也叫做子查询因子(subquery factoring),主要作用是定义一个SQL片段,该片段会被SQL语句中的其它部分应用到。

         主要有这几个作用:

         1.使SQL语句的可读性更高一些。(感觉像编程中的本地变量概念,定义好之后,很多地方都可以使用)。

         2.提高查询效率。特别是对于UNION ALL和子查询被多次引用的时候。如果UNION ALL的很多部分可能相同,如果每个相同的部分都去执行一遍的话,成本很高,而使用WITH AS短语的话,则相同的部分只会执行一遍。执行方式是如果只被调用一次的话,那么和子查询一样,但是一遍以上的话,则会把WITH AS的数据插入到一个临时表中,这样的话,效率就会大幅度的提高。(这点和本地变量的概念还是一样的,本地变量被赋值了之后,后面调用的都是值,而原来的子查询则像方法调用,每次都是调用一遍,这样性能自然会差一些。)

          使用举例:

           with samp as (

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

           )  

           select bb from samp 

                 

         注:Oracle是在Oracle 9i release 2开始进行支持的,之前的不支持。使用参考: http://dba-oracle.com/t_oracle_subquery_factoring.htm

               SQLServer则是在2005的时候已经支持了。使用指南:http://technet.microsoft.com/zh-cn/library/ms175972(v=sql.90)

               MySQL现在不支持。可以参考http://stackoverflow.com/questions/1382573/how-do-you-use-the-with-clause-in-mysql 

  • 相关阅读:
    03 类与对象
    课堂作业02程序设计
    动手动脑
    做课题时的一些问题
    课题一
    《大道至简》JAVA伪代码读后感
    题目-兔子繁衍问题
    题目-求一个日期是该年中的第几天
    题目-查验身份证
    题目-删除重复字符
  • 原文地址:https://www.cnblogs.com/kaka/p/3043089.html
Copyright © 2011-2022 走看看