gpt4 book ai didi

sql-server - 将具有相同 id 的字符串折叠到逗号分隔列表中

转载 作者:行者123 更新时间:2023-12-02 14:37:09 24 4
gpt4 key购买 nike

根据一些谷歌搜索,我想出了这个:

drop table #temp
create table #temp
(
id int,
name nvarchar(max)
)

insert into #temp (id,name) values (1,'bla1')
insert into #temp (id,name) values (1,'bla2')
insert into #temp (id,name) values (3,'bla3')

;with cte1 as
(
select id, stuff((select ', ' + CAST(t2.name as nvarchar(max))
from #temp t2 where t1.id = t2.id
for xml path('')),1,1,'') name
from #temp t1
)
select id, name from cte1 group by id, name

这是最好的做事方式吗?谢谢!

基督教

最佳答案

这种方法稍微好一点,因为它只是按 id 排序。而不是id,name

;WITH cte AS
(
SELECT DISTINCT id
FROM #temp
)
SELECT id, STUFF((SELECT ', ' + CAST(t2.name AS NVARCHAR(MAX))
FROM #temp t2 WHERE t1.id = t2.id
FOR XML PATH('')),1,1,'') name
FROM cte t1

如果您有一个表仅包含不同的 id字段已经你可能会更好地使用它。

仅当保证数据不包含任何字符(例如 <)时,您使用的方法才能正确工作。 , > , &

关于sql-server - 将具有相同 id 的字符串折叠到逗号分隔列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5962665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com