表如下:
项目 金额
学费 20
杂费 30
书费 2.5
问如何用一条Sql语句进行合并成一行,实现如下效果:
合并
学费20;杂费30;书费2.5
------解决方案--------------------
- SQL code
if object_id('test') is not null drop table testgocreate table test(项目 nvarchar(10),金额 float)goinsert into testselect N'学费', 20 union allselect N'杂费', 30 union allselect N'书费', 2.5goselect 项目+convert(varchar(5),金额)+';' from test for xml path('')/*XML_F52E2B61-18A1-11d1-B105-00805F49916B----------------------------------------------------------------------------------------------------------------学费20;杂费30;书费2.5;*/
------解决方案--------------------
- SQL code
declare @T table (项目 varchar(4),金额 varchar(4))insert into @Tselect '学费','20' union allselect '杂费','30' union allselect '书费','2.5'declare @sql varchar(8000)select @sql=isnull(@sql+',','')+项目+金额 from @tselect @sql as [合并]/*合并-----------------------学费20,杂费30,书费2.5*/