我已经开始阅读有关通用表表达式的内容,但无法想到需要使用它们的用例。它们似乎是多余的,因为派生表也可以这样做。我有什么遗漏或不太理解的地方吗?有人可以给我一个简单的示例,说明常规选择、派生或临时表查询的限制,以说明 CTE 的情况吗?任何简单的例子将不胜感激。
最佳答案
举个例子,如果您需要多次引用/加入同一数据集,您可以通过定义 CTE 来实现。因此,它可以是代码重用的一种形式。
自引用的一个例子是递归:Recursive Queries Using CTE
有关令人兴奋的 Microsoft 定义 Taken from Books Online:
CTE 可用于:
创建递归查询。欲了解更多信息,请参阅Recursive Queries Using Common Table Expressions.
当不需要一般使用 View 时替代 View ;也就是说,您不必将定义存储在元数据中。
启用按从标量子选择派生的列或不确定性或具有外部访问权限的函数进行分组。
在同一语句中多次引用结果表。
关于sql - 何时使用公共(public)表表达式 (CTE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740748/