SQL Server 2005公用表表达式(CTE)

简介html

  对于SELECT查询语句来讲,一般状况下,为了使T-SQL代码更加简洁和可读,在一个查询中引用另外的结果集都是经过视图而不是子查询来进行分解的。可是,视图是做为系统对象存在数据库中,那对于结果集仅仅须要在存储过程或是用户自定义函数中使用一次的时候,使用视图就显得有些奢侈了。数据库

    公用表表达式(Common Table Expression)是SQL SERVER 2005版本以后引入的一个特性。CTE能够看做是一个临时的结果集,能够在接下来的一个SELECT,INSERT,UPDATE,DELETE,MERGE语句中被屡次引用。使用公用表达式能够让语句更加清晰简练。函数

     除此以外,根据微软对CTE好处的描述,能够归结为四点:spa

  •  能够定义递归公用表表达式(CTE)
  •  当不须要将结果集做为视图被多个地方引用时,CTE能够使其更加简洁
  •  GROUP BY语句能够直接做用于子查询所得的标量列
  •  能够在一个语句中屡次引用公用表表达式(CTE)

定义.net

公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它。每一个CTE仅被定义一次(但在其做用域内能够被引用任意次),而且在该查询生存期间将一直生存。能够使用CTE来执行递归操做。code

包含三部分:htm

  1.   公用表表达式的名字(在WITH以后)
  2.   所涉及的列名(可选)
  3.   一个SELECT语句(紧跟AS以后)

建立的语法是:对象

with <name of you cte>(<column names>)
as(
<actual query>
)
select * from <name of your cte>

编辑推荐blog

SQL Server2005杂谈(1):使用公用表表达式(CTE)简化嵌套SQL递归

SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用

T-SQL查询进阶--详解公用表表达式(CTE)

T-SQL 公用表表达式(CTE)

使用公用表表达式(msdn)

关于SQL中CTE(公用表表达式)(Common Table Expression)的总结

相关文章
相关标签/搜索