合并字符串

wfcfan 2008-07-31 03:59:32
select * from view_tematt

结果:
aid vvalue
4 1
5 生产
6 充电器
6 耳机
6 存储卡

最后结果:
aid vvalue
4 1
5 生产
6 充电器,耳机,存储卡


请问sql语句应该怎么写呀

...全文
84 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lqmgf222 2008-08-01
  • 打赏
  • 举报
回复
create function f_1(@aid int)
returns varchar(8000)
as
begin
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+vvalue+',' from view_tematt where aid=@aid
set @sql=left(@sql,len(@sql)-1)
return @sql
end
go
create table view_tematt(aid int,vvalue varchar(20));
go
insert into view_tematt values(4, '1')
insert into view_tematt values(5, '生产')
insert into view_tematt values(6, '充电器')
insert into view_tematt values(6, '耳机')
insert into view_tematt values(6, '存储卡' )
go
select aid,dbo.f_1(aid) as vvalue from view_tematt group by aidcreate function f_1(@aid int)
returns varchar(8000)
as
begin
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+vvalue+',' from view_tematt where aid=@aid
set @sql=left(@sql,len(@sql)-1)
return @sql
end
go
create table view_tematt(aid int,vvalue varchar(20));
go
insert into view_tematt values(4, '1')
insert into view_tematt values(5, '生产')
insert into view_tematt values(6, '充电器')
insert into view_tematt values(6, '耳机')
insert into view_tematt values(6, '存储卡' )
go
select aid,dbo.f_1(aid) as vvalue from view_tematt group by aid
lqmgf222 2008-08-01
  • 打赏
  • 举报
回复
create function f_1(@aid int)
returns varchar(8000)
as
begin
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+vvalue+',' from view_tematt where aid=@aid
set @sql=left(@sql,len(@sql)-1)
return @sql
end
go
create table view_tematt(aid int,vvalue varchar(20));
go
insert into view_tematt values(4, '1')
insert into view_tematt values(5, '生产')
insert into view_tematt values(6, '充电器')
insert into view_tematt values(6, '耳机')
insert into view_tematt values(6, '存储卡' )
go
select aid,dbo.f_1(aid) as vvalue from view_tematt group by aid
flairsky 2008-07-31
  • 打赏
  • 举报
回复
楼上都很详细了,不加解释了
青锋-SS 2008-07-31
  • 打赏
  • 举报
回复

create function f_1(@aid int)
returns varchar(8000)
as
begin
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+vvalue+',' from view_tematt where aid=@aid
set @sql=left(@sql,len(@sql)-1)
return @sql
end
go
create table view_tematt(aid int,vvalue varchar(20));
go
insert into view_tematt values(4, '1')
insert into view_tematt values(5, '生产')
insert into view_tematt values(6, '充电器')
insert into view_tematt values(6, '耳机')
insert into view_tematt values(6, '存储卡' )
go
select aid,dbo.f_1(aid) as vvalue from view_tematt group by aid

--结果
aid vvalue
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4 1
5 生产
6 充电器,耳机,存储卡

(3 行受影响)

hery2002 2008-07-31
  • 打赏
  • 举报
回复
合并分拆表_整理贴1
http://topic.csdn.net/u/20080612/22/c850499f-bce3-4877-82d5-af2357857872.html

合并表:

SQL2000用函数:

go
if object_id('F_Str') is not null
drop function F_Str
go
create function F_Str(@aidint)
returns nvarchar(100)
as
begin
declare @S nvarchar(100)
select @S=isnull(@S+',','')+vvalue from view_tematt where aid=@aid
return @S
end
go
Select distinct aid,vvalue =dbo.F_Str(aid) from view_tematt

go
中国风 2008-07-31
  • 打赏
  • 举报
回复
wfcfan 2008-07-31
  • 打赏
  • 举报
回复
什么函数

青锋-SS 2008-07-31
  • 打赏
  • 举报
回复

create function f_1(@aid int)
returns varchar(8000)
as
begin
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+vvalue+',' from view_tematt where aid=@aid
set @sql=left(@sql,len(@sql)-1)
return @sql
end
go
select aid,f_1(aid) as vvalue from view_attemp group by aid
青锋-SS 2008-07-31
  • 打赏
  • 举报
回复
使用函数

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧