将多个 sql 查询的结果单独合并到多个列中

Combine results of multiple sql queries in multiple columns all alone

我有多个查询,在一列中只产生一个计数(只有一个单元格)。我需要合并这些列。

假设查询是:

select count (*) from address where city = NULL as citycount;
select count (*)  from address where countrycode = 4 as countrycount;
select count (*) from address;

以上查询将 return 结果:

citycount

40

countrycount

50

count(*)

400045

我想以这种方式组合上述查询,以便结果为:

 citycount countrycount  count(*)

    40        50          400045

这意味着列将合并。我有 30 多个查询。 提前致谢

将 SUM 与 CASE 表达式结合使用:

 select 
    sum(case when city = NULL then 1 else 0 end ) as citycount,
    sum(case when countrycode=4 then 1 else 0 end ) as countrycount,
    count(*) as countt
    from address
select 
(select count (*) from address where city IS NULL) as citycount,
(select count (*) from address where countrycode = 4) as countrycount,
count(*)
from address

试试这样的东西...希望对您有所帮助

CREATE TABLE #TEST
(
ID INT IDENTITY(1,1) NOT NULL,
Cnt INT NOT NULL,
DescTableName VARCHAR(100) NULL
)

INSERT INTO #TEST (Cnt, DescTableName)
SELECT COUNT(*) AS Cnt, 'citycount' AS DescTableName FROM dbo.[Subscriptions] 

INSERT INTO #TEST (Cnt, DescTableName)
SELECT COUNT(*) AS Cnt, 'countrycount' AS DescTableName FROM dbo.ReportSchedule

INSERT INTO #TEST (Cnt, DescTableName)
SELECT COUNT(*) AS Cnt, 'address' AS DescTableName FROM msdb.dbo.sysjobs 

SELECT * FROM #TEST

DROP TABLE #TEST