[置顶]信息发布系统 Jquery+MVC架构开发(8)DAL层的补充

 在这一层中,应用了sql server CTE,关于cte,在这里补充一下:

CTE (Common Table Expression),是从sql server 2005开始支持的一种表达式,它是一种临时结果集,与派生表类似,仅在查询期间有效。与派生表不同的是,cte可以调用自身,从而实现递归。此外,还可以在同一查询中引用多次。

下面是CTE的语法:

[ WITH [ ,n ] ]
::=
expression_name [ ( column_name [ ,n ] ) ]
AS
( CTE_query_definition )

至少有一个定位点成员和一个递归成员,当然,你可以定义多个定位点成员和递归成员,但所有定位点成员必须在递归成员的前面
定位点成员之间必须使用UNION ALL、UNION、INTERSECT、EXCEPT集合运算符,最后一个定位点成员与递归成员之间必须使用UNION ALL,递归成员之间也必须使用UNION ALL连接
定位点成员和递归成员中的字段数量和类型必须完全一致
递归成员的FROM子句只能引用一次CTE对象
递归成员中不允许出现下列项
    SELECT DISTINCT
    GROUP BY
    HAVING
    标量聚合
    TOP
    LEFT、RIGHT、OUTER JOIN(允许出现 INNER JOIN)
    子查询

注:

原文地址:https://www.cnblogs.com/encounter/p/2188754.html