如何避免两次编写SQL Server查询以避免重复?

时间:2012-01-24 18:58:12

标签: sql-server query-optimization

我有一个SQL查询,需要在整个查询中多次重复相同的SELECT语句作为其他计算的输入。

如何编写查询以便我只定义一次重复的SELECT SQL语句?有没有一种方法可以避免在通过查询重复时出错?

更新: 在这种情况下,从SELECT返回的数据应该是<在80%的情况下100行,在其他20%的情况下最多100-200行

CTE和表格变量看起来都像是有效的答案 - 但是你怎么知道在任何情况下哪一个更合适呢?

2 个答案:

答案 0 :(得分:7)

使用select插入Temp表或表变量。 (如果您认为数据集很小,请使用表变量,如果数据集很大则使用临时表)。然后在所有后续查询中,像任何其他表一样加入临时表或表变量。

答案 1 :(得分:3)

如果您想在同一查询中多次使用相同的SELECT作为子查询,则可以使用 Common Table Expressions (CTE)