Concat列在表中

时间:2014-05-09 11:38:01

标签: sql sql-server

我有以下表格测试

id       Name      
1        AA        
1        TT       
1        V         
2        C         
3        B         
3        N         
4        N1        

如何获得下表:concat(Name,|)group by id。

  id       Name      
    1        AA|TT|V                     
    2        C         
    3        B|N               
    4        N1   

1 个答案:

答案 0 :(得分:0)

SQL Server中没有group_concat函数。您可以使用以下查询来实现结果。可能不是一个有效的,但要试一试。演示在这里摆弄http://sqlfiddle.com/#!3/d3337/6

select distinct id,NEWNAME
from
(
SELECT 
    G.id,
    stuff(
    (
    select cast('|' as varchar(max)) + U.Name
    from tab U
    WHERE U.id = G.id
    order by U.Name
    for xml path('')
    ), 1, 1, '') AS NEWNAME
FROM
    tab G
 ) X
ORDER BY
    id ASC;

这将导致

enter image description here