当前位置: 首页 > 面试题库 >

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

戚飞雨
2023-03-14
问题内容

有没有一种方法可以给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;


 类似资料:
  • 问题内容: 我想知道是否可以在@Query批注中包含子查询(org.springframework.data.jpa.repository.Query;) 我在第一个子查询括号上得到QuerySyntaxException。 这是我的查询 谢谢! 问题答案: 不可以,JPQL查询的select子句中不能包含子查询。 JPQL在WHERE和HAVING子句中支持子查询。它可以(至少)是ANY,SOM

  • 问题内容: 有什么办法可以让子查询在oracle db中返回多个列?(我知道此特定的sql会导致错误,但总的来说我想要的很好) 我想要这样的结果: 我知道可以通过联接解决此问题,但这不是我要的。 我的问题很简单,是否有办法从子查询中获取两个或多个值?也许一些解决方法使用双重?这样就没有实际的联接,但是每行都有一个新的子查询? 编辑:这是一个原则性问题。我知道,您可以使用join解决所有这些问题。您

  • 问题内容: 我在用多个JOIN进行查询时注意到,除非给表名之一指定别名,否则查询将无法工作。 这是一个简单的例子来说明这一点: 这 不起作用 : 这样 做 : 有人可以解释吗? 问题答案: 您在查询中使用同一个表购买两次。您需要通过提供不同的名称来区分它们。 您需要提供一个别名: 想象两个人有完全相同的约翰·多伊。如果您致电John,双方都会回复您的电话。您不能给两个人使用相同的名字,并假设他们会

  • 问题内容: 假设我具有以下表格结构: 是否可以运行单个查询以结合以下两个条件: 此人正在关注多少用户 从t1 WHERE userID_follower =“。$ myID”中选择COUNT(id)。。” 有多少用户关注此人 从t1 WHERE userID_following =“。$ myID”中选择COUNT(id)。 谢谢。 问题答案: 在MySql中,您可以在条件上使用该函数,因为错误条

  • 我正在为一个使用Cloud Firestore的项目规划我的DB的结构,目前我正在尝试找出存储数据并将其与用户关联的最佳方法。具体情况如下: 我在我的数据库的根部有一个用户文档的集合,我希望用户能够通过查看显示该用户的帖子的用户配置文件页面以及通过查看显示所有用户的帖子的页面来创建可以访问的帖子。 将用户的文章存储在用户文档的子集合中会使获取用户的文章用于其配置文件变得非常容易,但是是否可以编写一

  • 问题内容: 有没有一种方法可以检查nodestore的firestore中是否存在子集合? 目前,我正在使用文档,但是我需要检查文档中是否存在子类以便写入一些数据。 问题答案: 就在这里。您可以使用docs.length来知道子集合是否存在。 我制作了一个样本来指导您,希望对您有所帮助。