寻找在Oracle中使用相同子查询两次时编写SQL的最佳实践

che*_*lkt 4 oracle

我在Oracle中编写SQL.在SQL中,我使用了两次相同的子查询.我正在尝试找到替换此类常见子查询或重用的查询的最佳方法.

我正在考虑为子查询创建一个视图,但我不允许这样做.全局临时表可能是其他解决方案,但我开始知道这些表并不是真正用于创建和丢弃的.

Jef*_*emp 6

您可以使用视图或全局临时表,但使用WITH子句通常更好,例如:

WITH q AS
  (SELECT something FROM mytable)
SELECT something FROM q
UNION ALL
SELECT something+1 FROM q;
Run Code Online (Sandbox Code Playgroud)