sql server怎么拼接两个字段(SQLServer中一个字段多行数据合并成一行)

创建一张测试表city,存放部分城市名称数据,现在演示如何将name字段多行记录存放为一行,查询城市表中的数据:

select top 6 name from city

sql server怎么拼接两个字段(SQLServer中一个字段多行数据合并成一行)(1)

下面通过两种方法将上面的6行记录展示为一行:贵阳市,长春市,七台河市,达州市,徐州市,绵阳市:

1. 使用字符串拼接

declare @str nvarchar(max); select @str = isnull(@str ',','') name from (select top 6 name from city )t select @str

sql server怎么拼接两个字段(SQLServer中一个字段多行数据合并成一行)(2)

2.使用 for xml path 函数

select top 6 ',' name from city for xml path('')

sql server怎么拼接两个字段(SQLServer中一个字段多行数据合并成一行)(3)

查询返回的是XML形式的数据,而且数据行最后多出了一个逗号,下面使用内置函数 STUFF 可以解决上面的两个问题:

select stuff( (select top 6 ',' name from city for xml path('') ), 1, 1, '')

sql server怎么拼接两个字段(SQLServer中一个字段多行数据合并成一行)(4)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页