MSSQL 2008 for xml path concatenation query

时间:2016-02-02 02:24:07

标签: sql-server for-xml-path

我知道这是多余的问题,但请理解。

首先 - 我已经在stackoverflow及其外部研究了我可以使用的所有资源,并且我找到了一些接近我所需输出的解决方案。

第二次 - 我根据我所研究的内容进行了自己的查询,到目前为止它正在运行。

第三 - 我的查询所需的输出不是我所期望的。

我当前的表(在视图中)设计是非连续

+----------------------+
| groupID | vesselName |
+----------------------+
|    2    | ACRO       |
+----------------------+
|    1    | JANICE 1   |
+----------------------+
|    1    | P/S-B      |
+----------------------+

这是我的查询

SELECT
    HRDB.dbo.vRangerGroup.groupID,
    STUFF(
        (
            SELECT HRDB.dbo.vRangerGroup.vesselName + ',' AS vesselName
            FROM HRDB.dbo.vRangerGroup AS RGS
            WHERE HRDB.dbo.vRangerGroup.groupID = RGS.groupID
            FOR XML PATH('')
        ),1,0,''
    ) AS RESULT
FROM HRDB.dbo.vRangerGroup

这里是我的查询输出

+------------------------------------------------------------------------------+
| groupID | vesselName                                                         |
+------------------------------------------------------------------------------+
|    1    | <vesselName>JANICE1,</vesselName><vesselName>JANICE1,</vesselName> |
+------------------------------------------------------------------------------+
|    2    | <vesselName>ACRO,</vesselName>                                     |
+------------------------------------------------------------------------------+
|    1    | <vesselName>P/S-B,</vesselName><vesselName>P/S-B,</vesselName>     |
+------------------------------------------------------------------------------+

所需输出

+---------------------------+
| groupID | vesselName      |
+---------------------------+
|    2    | ACRO            |
+---------------------------+
|    1    | JANICE1, P/S-B  |
+---------------------------+

我不知道我的查询有什么问题。

0 个答案:

没有答案