问题:
我正在编写一个 SELECT 查询,其 FROM 子句包含嵌套查询并从多个查询中获取数据。我需要在其他几个查询中再次使用来自 FROM cluase 的数据。
在 Oracle 中执行此操作的最佳方法是什么。
如果您需要在多个不同的 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)