这是我的数据
Code SubCode Colour Fruit Car City Name
A A1 Red Apple Honda Mel John
A A1 Green Apple Toyota NYC John
A A1 Red Banana Honda Lon John
A A1 Red Banana Opel Mel John
A A2 ...
A A2 ...
A A3
A A3
这是我的sql
SELECT Code, SubCode, STRING_AGG(Colour, ',') STRING_AGG(Fruit, ',') STRING_AGG(Car, ',') STRING_AGG(City, ',') STRING_AGG(Name, ',')
FROM myTable
我得到这个结果
Code SubCode Colour Fruit Car City Name
A A1 Red,Green,Red,Red Apple,Apple,Banana,Banan Honda,Toyota,Honda,Opel ...
有没有办法让我把价值观区分开来
对于单个值,我可以创建一个子查询 STRING_AGG
?
Code SubCode Colour Fruit Car City Name
A A1 Red,Green Apple,Banana Honda,Toyota,Opel ...
2条答案
按热度按时间wecizke31#
唉,sql server的
string_agg()
目前不支持DISTINCT
. 因此需要多个子查询,例如:请注意,原始查询缺少
group by
子句,因此它是无效的sql。我也修好了。zphenhs42#
悲哀地
string_agg()
不支持distinct
. 但是,使用row_number()
:这是一把小提琴。