1
我有值转换相交成两个逗号分隔值
letter number
A 1
A 2
A 3
B 1
B 2
两列我想两个聚合,逗号分隔的,代表着不同的组letter
和number
的交点的值。
e.g
letters numbers
A,B 1,2
A 3
我有值转换相交成两个逗号分隔值
letter number
A 1
A 2
A 3
B 1
B 2
两列我想两个聚合,逗号分隔的,代表着不同的组letter
和number
的交点的值。
e.g
letters numbers
A,B 1,2
A 3
我所做的是,首先由number
列串连的letter
列组。然后给出一个由连字母组成的行号分区,并按number
排序。然后再由串联
查询
;with cte as(
select *
from (
select [number], stuff((
select ', ' + [letter]
from [your_table_name]
where ([number] = t.[number])
for xml path('')
)
, 1, 2, ''
) as letters
from [your_table_name] t
group by [number]
)t2
)
select [letters], stuff((
select ', ' + cast(number as varchar(100))
from cte
where ([letters] = t.[letters])
for xml path('')
)
, 1, 2, ''
) as [numbers]
from cte t
group by [letters];
您是否尝试过的查询但你可以与我们分享级联的
number
栏目组? –在这里检查你的答案 - https://stackoverflow.com/questions/12671117/comma-separated-values-with-sql-query – Rojelo
@Emil如果你的输入包含C和2的更多行,你期望什么结果?或者第一列总是只有两个不同的值? – sepupic