sql 如何将查出来的一列用逗号拼接
4个回答
展开全部
写个存储过程,声明一个结果用的varchar变量,用游标把读出来的字段拼出来,照着下边的改改就行了
create proc [dbo].[teststr]asbegin declare @result VARCHAR(max)--用来处理结果的变量 declare @resultt VARCHAR(10) set @result=''
begin try deallocate tmpc end try begin catch end catch
declare tmpc cursor for select deviceid from t_carinfo Open tmpc --循环并提取记录 Fetch Next From tmpc Into @resultt--取第一条记录存入@resultt中 While ( @@Fetch_Status=0 ) begin set @result=@result+','+@resultt Fetch Next From tmpc into @resultt----下一条 end --关闭游标 Close tmpc --释放游标 Deallocate tmpc print substring(@result,2,len(@result)-1)--这里就是把第一个逗号去掉,取全部的数据end
create proc [dbo].[teststr]asbegin declare @result VARCHAR(max)--用来处理结果的变量 declare @resultt VARCHAR(10) set @result=''
begin try deallocate tmpc end try begin catch end catch
declare tmpc cursor for select deviceid from t_carinfo Open tmpc --循环并提取记录 Fetch Next From tmpc Into @resultt--取第一条记录存入@resultt中 While ( @@Fetch_Status=0 ) begin set @result=@result+','+@resultt Fetch Next From tmpc into @resultt----下一条 end --关闭游标 Close tmpc --释放游标 Deallocate tmpc print substring(@result,2,len(@result)-1)--这里就是把第一个逗号去掉,取全部的数据end
展开全部
在处理ResultSet的循环里添加逗号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
declare
v_sql varchar2(4000);
begin
for i in (select level a from dual connect by level<=4) loop
v_sql := v_sql||'sum(decode('||i.a||','||i.a||',''a'')), ';
end loop;
v_sql:=rtrim(v_sql,', ');
dbms_output.put_line(v_sql);
end;
v_sql varchar2(4000);
begin
for i in (select level a from dual connect by level<=4) loop
v_sql := v_sql||'sum(decode('||i.a||','||i.a||',''a'')), ';
end loop;
v_sql:=rtrim(v_sql,', ');
dbms_output.put_line(v_sql);
end;
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么数据库?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询