我正在寻找一种方法将不同行的字符串聚合到sybase ASE 15中的单行。像这样:
id | Name Result: id | Names
-- - ---- -- - -----
1 | Matt 1 | Matt, Rocks
1 | Rocks 2 | Stylus
2 | Stylus
类似于T-SQL中的FOR XML PATH。
谢谢!
Sybase ASE没有任何字符串聚合函数,如list()
或group_concat()
;虽然有一些支持FOR XML
,但它不包括对PATH
选项/功能的支持。
假设您可以附加未知/可变数量的行,您唯一的(ASE 15)T-SQL选项将是基于游标的解决方案。
如果您发现自己使用ASE 16,则可以编写用户定义函数(UDF)来完成任务,例如:emulate group_concat() in ASE 16
你可以试试这个:
select id,list(Names,',' order by id) from TableName a group by id