如何重复使用SQL子查询?(How to reuse a sub query in sql?)

2019-07-20 06:29发布

我有一个像下面的查询

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中排除。 我只能写简单的查询。 这是一个应用程序的限制。

有没有办法重新使用相同的子查询,在单个语句

Answer 1:

使用公共表表达式 ,如果你使用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


文章来源: How to reuse a sub query in sql?