连接一行中的多行

时间:2013-05-22 06:17:06

标签: sql pivot rdl sqlxml

我一直试图这样做,直到我无法弄清楚如何,

我只想将多行连接成一行,并使其成为最终列查询的值。为了说明;

初步查询:

       ColumnOne
       ---------
 Row1 | 1 - One
 Row2 | 2 - Two
 Row3 | 3 - Three

我想做点什么,

 1 - One, 2 - Two, 3 - Three

最终结果应该是这样的:

Name | Age | Text
-----------------
Paul | 12  | 1 - One, 2 - Two, 3 - Three
John | 34  | 1 - One, 2 - Two, 3 - Three
Alex | 15  | 1 - One, 2 - Two, 3 - Three

我将使用文本列作为RDL字段的描述

有人请。?

1 个答案:

答案 0 :(得分:4)

假设您的表名为tab1和tab2,并且您使用的是用于该关系的列ID,则应执行此操作:

SELECT t2.Name, t2.Age,
    (SELECT tab1_inner.ColumnOne + ','
        FROM tab1 tab1_inner
        INNER JOIN tab2 tab2_inner
        ON tab1_inner.ID = tab2_inner.ID
        WHERE t2.ID = tab1_inner.ID
        FOR XML PATH('')
    ) AS Text
FROM tab2 t2