0

いくつかの列を除いていくつかの行がすべて同じ値を持つ場合、SPは2つの行の間に異なる値を持つ列を持つ単一の行を返し、1つの区切りにマージされるような方法で値を返すストアドプロシージャを作成しようとしていますカンマ 例: SP を実行すると、以下のような 2 行が返されます。両方の行にはすべての列がありますが、1 つが類似しています。

col1               col2   col3               col4                    col5  col6         col7
------------------ ------ ------------------ ----------------------- ----- ------------ --------------
Remote Observation sdgfdg Remote Observation 2011-07-21 00:00:00.000 14.00 Inbound Call Order
Remote Observation sdgfdg Remote Observation 2011-07-21 00:00:00.000 14.00 Inbound Call Status Inquiry

今、私の望ましい出力は

col1               col2   col3               col4                    col5  col6         col7
------------------ ------ ------------------ ----------------------- ----- ------------ ---------------------
Remote Observation sdgfdg Remote Observation 2011-07-21 00:00:00.000 14.00 Inbound Call Order, Status Inquiry

誰かがこれを達成する方法を知っていますか。

4

1 に答える 1

1

行を文字列に連結する方法はたくさんあります。ここに1つの方法があります:)

詳細については、 http : //www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/ をご覧ください。

DECLARE @TestTable TABLE (
    col1 varchar(50),
    col2 varchar(50),
    col3 varchar(50),
    col4 varchar(50),
    col5 varchar(50),
    col6 varchar(50),
    col7 varchar(50)
)

insert into @TestTable 
values
('Remote Observation','sdgfdg','Remote Observation','2011-07-21 00:00:00.000 ','14.00','Inbound Call','Order'),
('Remote Observation','sdgfdg','Remote Observation','2011-07-21 00:00:00.000 ','14.00','Inbound Call','Status Inquiry'),
('Remote Observation','sdgfdg','Remote Observation','2011-07-21 00:00:00.000 ','14.00','Inbound Call','Status Inquiry')


select col1,col2,col3,col4,col5,col6,LEFT(col7,LEN(col7)-1) col7
from
(
    select col1,col2,col3,col4,col5,col6,
    ( 
        select distinct col7 + ',' 
        from @TestTable t2
        where t2.col1 = t1.col1
        AND t2.col2 = t1.col2
        AND t2.col3 = t1.col3
        AND t2.col4 = t1.col4
        AND t2.col5 = t1.col5
        AND t2.col6 = t1.col6
        for xml path('') 
    ) col7
    from @TestTable t1
    group by col1,col2,col3,col4,col5,col6
)  source 
于 2011-09-01T12:35:20.447 に答える