繁体   English   中英

SQL在一行中获取列的多个值

[英]SQL get multiple values of columns in one row

我正在使用MS Sql Server 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和Col2中每个不同值的一行,所有与col1相关的值都用逗号或管道定界符

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

谁可以帮我这个事?

基本上我需要在My sql中可用的诸如group_concat之类的东西

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 server中做。 检查sqlfidddle

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM