Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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_Tsql_Sql Server 2005_Relational Database - Fatal编程技术网

Sql 什么脚本会连接字符串并按列值过滤?

Sql 什么脚本会连接字符串并按列值过滤?,sql,tsql,sql-server-2005,relational-database,Sql,Tsql,Sql Server 2005,Relational Database,我需要一个脚本,该脚本将按PLAN_ID以冒号分隔的字符串连接下表中的原因值,并将它们放在另一个表中,保持对Order值的真实性。如何做到这一点 PLAN_ID Order Reason 6281 1 Declined 6281 4 Unfit 6281 8 Other 6281 9 Monitoring 6286 1 Declined 6286 5 Unknown Site 6286

我需要一个脚本,该脚本将按PLAN_ID以冒号分隔的字符串连接下表中的原因值,并将它们放在另一个表中,保持对Order值的真实性。如何做到这一点

PLAN_ID Order   Reason
6281    1       Declined
6281    4       Unfit
6281    8       Other
6281    9       Monitoring
6286    1       Declined
6286    5       Unknown Site
6286    10      Not Known

PLAN_ID Reason
6281    Declined;Unfit;Other;Monitoring
6286    Declined;Unknown Site;Not Known

下面这样的方法应该可以工作:

SELECT  t1.plan_id, 
        STUFF(( SELECT  '; ' + t2.reason 
                FROM    orders AS t2 
                WHERE   t1.plan_id = t2.plan_id
                FOR XML PATH('')
            ), 1, 2, '') as reason
FROM    dbo.orders AS t1 
GROUP BY plan_id
您可以使用简单的insert into..SELECT语法将上述SELECT语句的输出插入到所需的表中