gpt4 book ai didi

sql - 是否可以在Oracle 11g SQL中为子查询赋予别名?

转载 作者:行者123 更新时间:2023-12-03 15:21:06 24 4
gpt4 key购买 nike

有没有办法给Oracle 11g中的子查询一个别名,例如:

select * 
from
(select client_ref_id, request from some_table where message_type = 1) abc,
(select client_ref_id, response from some_table where message_type = 2) defg
where
abc.client_ref_id = def.client_ref_id;


否则,有一种方法可以基于client_ref_id加入两个子查询。我意识到有一个自我连接,但是在我正在自我连接上运行的数据库上可能需要5分钟才能完成(我正在运行的实际查询中有一些额外的逻辑,但是我确定自我连接是什么引起问题)。各个子查询仅需花费几秒钟即可完成。自联接查询看起来像:

select st.request, st1.request
from
some_table st, some_table st1
where
st.client_ref_id = st1.client_ref_id;

最佳答案

您可以使用Oracle的CTE(公用表表达式)又名WITH子句为查询命名或别名,作为子查询因子:

WITH abc as (select client_ref_id, request from some_table where message_type = 1)
select *
from abc
inner join
(select client_ref_id, response from some_table where message_type = 2) defg
on abc.client_ref_id = def.client_ref_id;

关于sql - 是否可以在Oracle 11g SQL中为子查询赋予别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3057930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com