【发布时间】:2012-01-24 18:58:11
【问题描述】:
我有一个 sql 查询,需要在整个查询中多次重复相同的 SELECT 语句作为其他计算的输入。
如何编写查询以便只定义重复的SELECT SQL 语句一次?有没有一种方法可以避免在通过查询重复时出错?
更新: 在这种情况下,从 SELECT 返回的数据预计在 80% 的情况下小于 100 行,在其他 20% 的情况下最多为 100-200 行
CTE 和表格变量看起来都是有效的答案 - 但您如何知道在任何情况下哪个选项更合适?
【问题讨论】:
-
@ypercube -
CTE在这里不太合适,因为它只适用于一个查询。一旦我SELECT * FROM CTE下一个查询看不到它,除非我重新定义 CTE 哪种违背了目的:) -
@JNK:在这种情况下,视图可能会很方便。我认为 OP 想在同一个查询中多次使用同一个 SELECT。
-
他可能是,这不是很清楚。
-
@ypercube:你是对的——我想在同一个查询中多次重复使用同一个 SELECT,所以 CTE 非常适合。如果您将您的建议添加为实际答案,我会将其标记为正确的。谢谢!
标签: sql-server query-optimization