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