0

基本上我想做这样的事情。

SELECT * 
FROM TABLE, (SELECT * FROM TABLE2) SUBQ
WHERE TABLE.SOMETHING IN (SELECT DISTINCT COL FROM SUBQ)

我想知道是否可以在我FROM的另一个子查询中调用该子查询表,如果可以,该怎么做。

这是一个简化的示例(我的查询太长了),所以我没有研究另一种不使用FROM.

4

1 回答 1

1

您要查找的内容称为common table expression,它使用WITHSQL 关键字。

当然,如果可以将其重构为使用临时表或(索引)视图,它会更好/更高性能,并且它将服务于多个执行流(如果它们都需要访问相同的数据)。

如果不同的执行流不需要访问相同的数据,那么创建许多临时表或视图(同时还试图避免名称冲突)不是最优的,CTE 更有用。

于 2013-05-07T16:03:09.337 回答