2

问题:

我正在编写一个 SELECT 查询,其 FROM 子句包含嵌套查询并从多个查询中获取数据。我需要在其他几个查询中再次使用来自 FROM cluase 的数据。

在 Oracle 中执行此操作的最佳方法是什么。

4

1 回答 1

5

如果您需要在多个不同的 SQL 语句中重用一个查询,最简单的选择是为该 SQL 语句创建一个视图

CREATE VIEW view_name
AS
  <<query to reuse>>

然后在所有查询中使用该视图。

如果您需要在同一 SQL 语句中的多个位置重用查询,请使用子查询分解和WITH子句

WITH query_name AS (
  <<query to reuse>>
)
SELECT *
  FROM query_name q1
 WHERE something = (select max(something)
                      from query_name q2
                     where q1.key = q2.key)
于 2012-12-12T16:38:50.840 回答