Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server:如何为GROUPBY语句中聚合列中的不同值生成逗号分隔字符串_Sql_Sql Server - Fatal编程技术网

SQL Server:如何为GROUPBY语句中聚合列中的不同值生成逗号分隔字符串

SQL Server:如何为GROUPBY语句中聚合列中的不同值生成逗号分隔字符串,sql,sql-server,Sql,Sql Server,我想为GROUPBY语句中聚合列的不同事件生成一个逗号分隔的字符串。因此,我: Select Column1, ???statement involving Column2??? from MyTable group by Column1 我不知道要在问号之间加什么。假设您有以下表格: use TSQL2012 if object_id('testStackOverflow') is not null drop table testStackOverflow create t

我想为GROUPBY语句中聚合列的不同事件生成一个逗号分隔的字符串。因此,我:

Select Column1, ???statement involving Column2??? from MyTable
group by Column1

我不知道要在问号之间加什么。

假设您有以下表格:

use TSQL2012

    if object_id('testStackOverflow') is not null drop table testStackOverflow
    create table testStackOverflow(
    column1 varchar(100) not null,
    column2 varchar(100) not null,
    constraint PK2 primary key(column1,column2)

    )

    insert into testStackOverflow(column1,column2)
    values 
    ('value1','t1'),
    ('value1','t2'),
    ('value1','t3'),
    ('value2','t5'),
    ('value2','t6'),
    ('value2','t7')
您可以使用以下查询:

   Select column1, 
    substring(
        (
            Select ','+sto2.column2  AS [text()]
            From testStackOverflow as sto2
            Where sto2.column1 = sto1.column1
            ORDER BY sto2.column1
            For XML PATH ('')
        ), 2, 1000) as column2concat
From testStackOverflow as sto1
group by column1
结果将是:

我将Ritesh的回答作为参考: