在SQL Server 2014中的表中需要逗号分隔的值

时间:2018-08-08 10:15:18

标签: sql-server sql-server-2012

我有一张这样的桌子。

componentDidMount() {
    const numOfBackground = 4;
    let scrollValue = 0, scrolled = 0;
    setInterval(function () {
        scrolled++;
        if(scrolled < numOfBackground)
            scrollValue = scrollValue + width;
        else{
            scrollValue = 0;
            scrolled = 0
        }
        _scrollView.scrollTo({ x: scrollValue, animated: false })
    }, 3000);
}

我希望表格显示如下

Create table #temp
(
    id int,
    firstname varchar(50),
    lastname varchar(50)
)

insert into #temp (id, firstname, lastname)
select 1,'mit','jain'

insert into #temp (id, firstname, lastname)
select 1,'mit','jain1'

insert into #temp (id, firstname, lastname)
select 1,'mit','jain2'

insert into #temp (id, firstname, lastname)
select 2,'mit','jain3'

insert into #temp (id, firstname, lastname)
select 2,'mit','jain4'

insert into #temp (id, firstname, lastname)
select 1,'mit','jain5'

insert into #temp (id, firstname, lastname)
select 1,'mit','jain6'

我尝试了如下查询

id  firstname  lastname
----------------------------------------------
 1   mit        jain,jain1,jain2,jain5,jain6 
 2   mit        jain2,jain4

但是它不起作用。请帮帮我

1 个答案:

答案 0 :(得分:2)

您是那里的一部分。传统方法使用STUFF

SELECT t.id, t.firstname,
       STUFF((SELECT ', ' + sq.lastname
              FROM #temp sq
              WHERE sq.id = t.id
                AND sq.firstname = t.firstname
              ORDER BY sq.lastname
              FOR XML PATH('')),1,1,'') AS lastname
FROM #temp t
GROUP BY t.id, t.firstname;

虽然已经有很多关于如何执行此操作的答案,但是您已经展示出了努力。 :)