Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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 将多行值转换为一行值_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 将多行值转换为一行值

Sql 将多行值转换为一行值,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有下表 Id | dwCode| PRNo | ----------------------- 1 DW001 PR001 2 DW001 PR002 Id | dwCode | PRNo| ----------------------- 1 DW001 PR001 2 DW001 PR002 我需要以下结果: dwCode| PRNo | ----------------------- DW001 PR001,PR002 dwCode | PRNo| -----

我有下表

Id | dwCode| PRNo | ----------------------- 1 DW001 PR001 2 DW001 PR002 Id | dwCode | PRNo| ----------------------- 1 DW001 PR001 2 DW001 PR002 我需要以下结果:

dwCode| PRNo | ----------------------- DW001 PR001,PR002 dwCode | PRNo| ----------------------- DW001 PR001,PR002 使用MS SQL Server 2005是否有任何短方法可以像这样转换数据?

您可以使用:

SELECT 
  t1.dwCode,
  STUFF((
    SELECT ', ' + t2.PRNo
    FROM Table1 t2
    WHERE t2.dwCode   = t1.dwCode
    FOR XML PATH (''))
  ,1,2,'') AS PRNo
FROM Table1 t1
GROUP BY t1.dwCode;
请在此处查看它的实际操作: