繁体   English   中英

查询上一个查询的结果集

[英]Querying the Result set of a Previous Query

我有一个查询,例如Query1 = Select Name from table where some Criteria 现在,此查询当然返回一个结果集,我想要的是查询此查询的结果集,例如,我只希望上述查询中的唯一名称select Distinct(Name) from Query1 我应该提到,我知道我可以在Query1中使用distinct ,但这只是一个示例,我的实际情况有所不同,我想知道的是是否可以查询上一个查询的结果集。 我正在使用SQL Server 2012。

有几种解决方法:

1:从第一个查询创建视图,然后在视图上运行第二个查询。

2:嵌套两个查询,如下所示:

SELECT DISTINCT [Name]
FROM (
  SELECT [Name] 
  FROM table 
  WHERE some Criteria
) As InnerQuery

3:使用临时表存储wewesthemenace在注释中建议的第一个查询的结果集。

4:按照本文的其他答案中的thebreiflabb建议使用CTE。

就个人而言,我可能会选择第一个或第二个选项,这取决于您是否还需要单独使用第一个查询。

您可以使用WITH子句

WITH SomeClients AS (
    SELECT
        c.ID
    FROM Clients c
    WHERE c.Name LIKE '%hello%'
)

SELECT DISTINCT
    sc.ID
FROM SomeClients sc

您需要WITH子句。 语法是-

WITH someName AS(
 //Your Db Query
)
SELECT * FROM someName // OR Whatever you want

您可以创建一个表来临时存储结果,并在新查询中使用该表

DECLARE @resultset table (
    ID   int identity(1,1) not null
  , name nvarchar(100)
)

Select top 50 application_Name
into  resultset
from Applications_ASIS

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM