Sql 将表行作为XML输出,并使用Groupby另一列

Sql 将表行作为XML输出,并使用Groupby另一列,sql,sql-server,xml,Sql,Sql Server,Xml,我有下表: Dept Skills 1 200 1 250 2 150 2 200 2 250 并需要此输出: Dept XMLcolumn 1 <xcol>200></xcol><xcol>250</xcol> 2 <xcol>150></xcol><xcol>200</x

我有下表:

Dept     Skills
1        200
1        250
2        150
2        200
2        250
并需要此输出:

Dept      XMLcolumn
1         <xcol>200></xcol><xcol>250</xcol>
2         <xcol>150></xcol><xcol>200</xcol><xcol>250</xcol>
非常感谢您的帮助

请尝试:

SELECT Dept,
    (SELECT '<xcol>' + CAST(Skills as nvarchar)+ '</xcol>'
       FROM tbl a
       where a.Dept=b.Dept
        FOR XML PATH(''),type).value('.','nvarchar(max)') XMLColumn
FROM tbl b
group by Dept
请尝试:

SELECT Dept,
    (SELECT '<xcol>' + CAST(Skills as nvarchar)+ '</xcol>'
       FROM tbl a
       where a.Dept=b.Dept
        FOR XML PATH(''),type).value('.','nvarchar(max)') XMLColumn
FROM tbl b
group by Dept

像这样的怎么样

DECLARE @TABLE TABLE(
        Dept INT,
        Skills INT
)

INSERT INTO @TABLE VALUES ( 1,200),( 1,250),( 2,150),( 2,200),( 2,250)

SELECT  Dept,
        (
            SELECT  Skills xcol
            FROM    @TABLE
            WHERE   Dept = t.Dept
            FOR XML RAW(''), ELEMENTS
        )
FROM    @TABLE t
GROUP BY    Dept

像这样的怎么样

DECLARE @TABLE TABLE(
        Dept INT,
        Skills INT
)

INSERT INTO @TABLE VALUES ( 1,200),( 1,250),( 2,150),( 2,200),( 2,250)

SELECT  Dept,
        (
            SELECT  Skills xcol
            FROM    @TABLE
            WHERE   Dept = t.Dept
            FOR XML RAW(''), ELEMENTS
        )
FROM    @TABLE t
GROUP BY    Dept
@阿斯坦德:工作得很有魅力!!非常感谢@阿斯坦德:工作得很有魅力!!谢谢!