Unlike a derived table,a CTE can be self-referencing and can be referenced multiple times in the same query.
我正在使用CTE,但我从未深入考虑过使用CTE的好处.
如果我在同一个查询中多次引用CTE:
>有任何性能优势吗?>如果我正在进行自联接,sql Server会扫描目标表两次吗?
CTE本质上是一次性视图.没有存储其他统计信息,没有索引等.它用作子查询的简写.
在我看来,他们可以轻松过度使用(我看到我工作中的代码中有很多过度使用). Some good answers are here,但是如果您需要多次引用某些内容,或者它的行数超过几十万行,请将其放入#temp表中并将其编入索引.