具有两个表中两列的Sql server XML路径

具有两个表中两列的Sql server XML路径,sql,sql-server,csv,Sql,Sql Server,Csv,我有以下疑问 SELECT F.ID, (S.Parameter + '="' + F.Value + '"') AS params FROM FirstTable F WITH (NOLOCK) LEFT JOIN SecondTable S ON F.ID = S.ID 输出如下所示 ID params 21 rev="REVENUE" 21 cv_1="CUS

我有以下疑问

SELECT F.ID,
                 (S.Parameter + '="' + F.Value + '"') AS params
                 FROM FirstTable F WITH (NOLOCK)
            LEFT JOIN SecondTable S ON
                F.ID = S.ID
输出如下所示

ID  params
21  rev="REVENUE"
21  cv_1="CUSTOM1"
21  cv_2="CUSTOM2"
20  rev="Revvv"
20  cv_1="cus 1"
20  cv_2="cus2 "
我想要像这样的输出

ID  params
21  rev="REVENUE";cv_1="CUSTOM1";cv_2="CUSTOM2"
20  rev="Revvv";cv_1="cus 1";cv_2="cus2"
我尝试使用Stuff和XML路径,但无法获得所需的输出

我正在努力

SELECT      F.ID,
                 STUFF( (SELECT (';' + S.Parameter + '="' + F.Value + '"') AS params
              FROM FirstTable F WITH (NOLOCK)
            LEFT JOIN SecondTable S ON
                S.ID = F.MacroID
               WHERE F.ID = S.ID
               FOR XML PATH ('')
              ), 1, 1, '') as params
            FROM FirstTable F WITH (NOLOCK)
            LEFT JOIN SecondTable S ON
                S.ID = F.ID
有人能帮我做这个吗

谢谢你想必你想要:

SELECT F.ID,
       STUFF( (SELECT (';' + S.Parameter + '="' + S.Value + '"') 
               FROM SecondTable S
               WHERE F.ID = S.DID
               FOR XML PATH (''), TYPE
              ).VALUE('.', 'NVARCHAR(MAX)'
                     ), 1, 1, ''
            ) as params
FROM FirstTable F ;

您可以使用
groupby
STRING\u AGG
添加到现有代码中(
SQL Server 2017+
支持
STRING\u AGG


很抱歉,查询中有一点错误,S.值实际上来自Ftable@YogeshSharma . . . 谢谢。我正在使用2012
Select ID, string_agg(params, ';')
from (
SELECT F.ID,
        (S.Parameter + '="' + F.Value + '"') AS params
        FROM FirstTable F WITH (NOLOCK)
        LEFT JOIN SecondTable S ON
        F.ID = S.DID
) a
group by ID