加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql – 如何重用大型查询而不重复它?

发布时间:2021-03-22 13:22:38 所属栏目:编程 来源:网络整理
导读:假如我有两个查询,我将挪用horrible_query_1和ugly_query_2,而且我想对它们执行以下两个减号操纵: (horrible_query_1) minus (ugly_query_2)(ugly_query_2) minus (horrible_query_1) 可能我也许有一个terribly_large_and_useful_query,它发生的功效集我想用

假如我有两个查询,我将挪用horrible_query_1和ugly_query_2,而且我想对它们执行以下两个减号操纵:

(horrible_query_1) minus (ugly_query_2)
(ugly_query_2) minus (horrible_query_1)

可能我也许有一个terribly_large_and_useful_query,它发生的功效集我想用作将来几个查询的一部门.

怎样停止在多个位置复制和粘贴沟通的查询?我怎么能“不一再本身”,并遵循DRY原则.这在SQL中是否可行?

我正在行使Oracle SQL.便携式SQL办理方案是首选,但假如我必需行使Oracle特定成果(包罗PL / SQL),那就没题目.

办理要领

create view horrible_query_1_VIEW as 
 select .. ...
  from .. .. ..

create view ugly_query_2_VIEW as 
 select .. ...
  from .. .. ..

然后

(horrible_query_1_VIEW) minus (ugly_query_2_VIEW)

(ugly_query_2_VIEW) minus (horrible_query_1_VIEW)

可能,大概,行使with子句:

with horrible_query_1 as (
  select .. .. ..
    from .. .. ..
),ugly_query_2 as (
  select .. .. ..
     .. .. ..
)
(select * from horrible_query_1 minus select * from ugly_query_2    ) union all
(select * from ugly_query_2     minus select * from horrible_query_1)

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读