Sql server SQL Server如何将行数转换为列值?

Sql server SQL Server如何将行数转换为列值?,sql-server,transpose,Sql Server,Transpose,我从表中返回三行,如下所示: select ID from service 结果: ID -- 1 2 3 如何返回如下输出: count | IDs -------+---------- 3 | 1,2,3 希望这有帮助 select (select Count(*) from service)+' | '+ SELECT STUFF ( ( SELECT ',' + s.FirstName FROM Employ

我从表中返回三行,如下所示:

select ID 
from service
结果:

ID 
--
1 
2
3
如何返回如下输出:

count  |    IDs 
-------+----------
3      |    1,2,3
希望这有帮助

select (select Count(*) from service)+' | '+ SELECT STUFF
(
    (
        SELECT ',' + s.FirstName 
        FROM Employee s
        ORDER BY s.FirstName FOR XML PATH('')
    ),
     1, 1, ''
) AS Employees)

若您要使用stuff函数,那个么就不需要子查询ID的计数

select count(1) count,
       stuff(
             (select ','+cast(id as varchar) from table for xml path('')),
             1,1,'') Ids
from table

@苹果,把这个作为答案,因为它回答了你的问题。@apple很高兴我能帮上忙