0

MS Sql サーバー 2008 R2 を使用しています。このような出力が得られるクエリがあります

Col1....Col2
CV1.....AV1
CV1.....AV2
CV2.....AV3
CV2.....AV4

クエリは

select Tab1.Col1, Tab2.Col2 
from Table1 Tab1 
JOIN Table2 Tab2 on Tab1.PKID = Tab2.FKID

私が欲しいのは、Col1 の個別の値ごとに 1 つの行であり、Col2 では、col1 に関連するすべての値がコンマまたはパイプライン区切り記号で示されます。

Col1....Col2
CV1.....AV1,AV2
CV2.....AV3,AV4

誰でもこれについて私を助けることができますか?

基本的に、My sqlで利用できるgroup_concatのようなものが必要です

4

1 に答える 1

1
CREATE TABLE a(
  Col1 varchar(50),
  Col2 varchar(20));   

INSERT INTO a (Col1,Col2) values ('CV1','AV1');
INSERT INTO a (Col1,Col2) values ('CV1','AV2');
INSERT INTO a (Col1,Col2) values ('CV2','AV3');
INSERT INTO a (Col1,Col2) values ('CV2','AV4');   

 with t as (SELECT Col1,(CAST(Col2 AS nvarchar (12))) as col2 from a )
    Select distinct T2.Col1,
                   substring((Select ','  +   T1.col2  AS [text()]
                    From t T1
                    Where T1.Col1 = T2.Col1
                    ORDER BY T1.Col1
                    For XML PATH ('')),2, 100) [col2]
             From t T2

このクエリを試してください。私はSQLサーバーでそれをやっています。sqlfiddle で確認してください

http://sqlfiddle.com/#!3/7ab28/1

于 2013-06-19T10:28:40.413 に答える