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

如何在sql中重用子查询?

蓝飞
2023-03-14
问题内容

我有如下查询

select columns
from (select columns1
      from result_set
      where condition_common and condition1) as subset1
      join
      (select columns2
       from result_set
       where condition_common and condition2) as subset2 
      on subset1.somekey = subset2.somekey

我想以某种方式重用

select columns
from result_set
where condition_common

我简化了上面的查询,但是实际上上面的选择是巨大而复杂的。我不想负担确保两者同步

我没有任何以编程方式重用它的方法。排除了T-SQL。我只能写简单的查询。这是应用程序的限制。

有没有一种方法可以在单个语句中重用相同的子查询


问题答案:

如果您使用的是SQL Server 2005+,请使用公用表表达式(CTE):

with cte as (
      select columns
      from result_set
      where condition_common
    )
select columns
from cte  as subset1
      join
      cte as subset2 
         on subset1.somekey = subset2.somekey
where otherconditions


 类似资料:
  • 问题内容: 如何在按部分分组的查询中使用子查询? 我使用SQL Server 2008 R2和Delphi 2010 我收到此错误: 像这个查询: 按t1.sen分组 问题答案: 这是真实的方式

  • 问题内容: 假设我的数据库表中有一个名为“ code”的列,其中包含字符串数据类型。 我想要一个查询,该查询将返回所有带有’code’值的行,该值是给定搜索字符串的子字符串,并且附加条件是该子字符串出现在搜索字符串的末尾。 例如,如果搜索字符串为“ 12345”,则查询应返回“代码”值为 12345 2345 345 45 5的所有行。 问题答案: 只需使用like运算符即可:

  • 问题内容: 如何在Firebase Android中查询SQL IN子句?我想在Firebase Recycler适配器中使用它,以便根据某些条件仅检索某些子级。类似于以下语句: 我需要一个Firebase查询才能在Firebase Recycler适配器中使用它。 问题答案: 我找到了解决方案:我们无法使用。相反,我们必须创建可扩展的自定义适配器。 要将值传递给此适配器,首先我们必须使用检索数据

  • 问题内容: 这是我想阻止在服务器上运行的那种查询的示例: 该查询(或其他类似查询)可能通过Oracle JDBC瘦驱动程序访问了我的Oracle服务器。我愿意阻止该查询在JDBC配置级别,数据库服务器配置级别或通过架构内的用户权限运行。我希望用户能够继续运行正常的选择/插入/更新/删除查询。老实说,如果没有可用的PL / SQL类型命令,而只有标准SQL,我会很高兴。 更新 我还应该提到,我希望用

  • 问题内容: 我有此查询,它运行良好 从此查询中,我从我的位置(这是我的第一张表)中选择所有3 KM的餐厅。 但是我需要从3Km中的食品接头中选择AVG等级。 该查询也运行完美: 但是我需要添加这两个查询,通过它们我可以选择所有那些食品接头及其等级AVG。 问题答案: 只需放置子查询,您将得到结果:

  • 我必须得到特定的数据,如"角色"表已提交状态,我需要状态=1,所有数据从角色表