公用表表达式或子查询?

时间:2015-10-30 16:55:20

标签: sql sql-server

以下有两个查询,提供相同的结果,唯一的区别是第一个查询带有子查询,第二个查询带有公用表表达式。问题是这两种方式(子查询和CTE)之间的“性能”差异是什么?

从我所读到的内容,当您想要重用查询时,CTE会更好,但除此之外,我还没有看到这两种方式之间的任何其他优点或缺点。

continue
SELECT col1,col2,col3,tt.c1,tt.c2.tt.c3
FROM table1 t1
INNER JOIN (SELECT t2.col1 as c1 ,t2.col2 as c2 ,t3.col3 as c3
            FROM table2 t2
            INNER JOIN table3 t3 ON t2.col1= t3.col1
            WHERE t3.col1>100 ) tt ON t1.col1= tt.col1

1 个答案:

答案 0 :(得分:0)

在这种情况下,根据这种用法,它基本上是相同的。 您只能使用CTE来提高可读性。