求sql 语句,把一个字段的数据串起来
求sql 语句,把查询一个字段的数据串起来
------解决方案--------------------结果集:
1
2
3
4
5
我想要的是用逗号隔开的一个字符串
1,2,3,4,5
declare @output varchar(8000)
select @output = coalesce(@output+ ', ', ' ') + col from table
print @output
------解决方案--------------------declare @str varchar(8000)
select @str=isnull(@str, ' ')+字段名 from 表
print @str
------解决方案----------------------?这样?
select c1+c2+c3+...+cn from 表
数值型字段要转换:cast(cn as varchar)
------解决方案----------------------例子
declare @str varchar(8000)
set @str= ' '
select @str=@str+rtrim(列名) from 表名
print @str
------解决方案--------------------create table tb(id varchar(10))
insert into tb values( '1 ')
insert into tb values( '2 ')
insert into tb values( '3 ')
insert into tb values( '4 ')
insert into tb values( '5 ')
go
declare @output varchar(8000)
select @output = coalesce(@output+ ', ', ' ') + id from tb
print @output
drop table tb
/*
1,2,3,4,5
*/
------解决方案--------------------declare @str varchar(8000)
set @str= ' '
select top 10 @str=@str+ '|| '+[name]
from syscolumns
set @str=stuff(@str,1,2, ' ')
print @str
/* 结果
base_schema_ver||cache||category||crdate||deltrig||ftcatid||id||indexdel||info||instrig
*/
------解决方案--------------------use xxx
go
declare @Var_TBL TABLE(test varchar(20))
declare @result varchar(2000)
begin
insert into @Var_TBL values( '1 ')
insert into @Var_TBL values( '2 ')
insert into @Var_TBL values( '3 ')
insert into @Var_TBL values( '4 ')
insert into @Var_TBL values( '5 ')
select @result=isnull(@result, ' ')+isnull(test, ' ')+ ', ' from @Var_TBL
select @result=substring(@result,1,len(@result)-1)
select @result result
end
------解决方案--------------------declare @str varchar(8000)
set @str= ' '
select @str=@str+ ', '+字段名 from 表
set @str=right(@str,len(@str)-1)
print @str