我已经开始阅读有关 Common Table Expression 的内容,并且想不出我需要使用它们的用例。它们似乎是多余的,因为派生表也可以这样做。有什么我遗漏或不理解的东西吗?有人可以给我一个简单的例子来说明常规选择、派生或临时表查询的限制,以说明 CTE 的情况吗?任何简单的例子都将受到高度赞赏。
例如,如果您需要多次引用/加入同一数据集,您可以通过定义 CTE 来实现。因此,它可以是代码重用的一种形式。
自引用的一个例子是递归:Recursive Queries Using CTE
令人兴奋的 Microsoft 定义 取自联机丛书:
CTE 可用于:
创建递归查询。有关详细信息,请参阅使用公用表表达式的递归查询。
在不需要一般使用视图时替换视图;也就是说,您不必将定义存储在元数据中。
启用按从标量子选择派生的列或非确定性或具有外部访问权限的函数进行分组。
在同一语句中多次引用结果表。