这样效果的输出??????

lqe_ada 2003-09-15 08:33:41
有以下表
Fitemname1 Fitemname2
F1 A
F1 B
F1 C
F2 A
F2 C
现在想用这种格式输出

Fitemname1 Fitemname2
F1 A,B,C
F2 A,C
...全文
28 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzh1215 2003-09-15
  • 打赏
  • 举报
回复
把合并后的数据还原好像有点难哟!
关键是一头一尾的处理!
happydreamer 2003-09-15
  • 打赏
  • 举报
回复
;)
伍子V5 2003-09-15
  • 打赏
  • 举报
回复
up,呵呵
SilverSands 2003-09-15
  • 打赏
  • 举报
回复
呵呵。楼上说的不错,这类问题是不少!
yujohny 2003-09-15
  • 打赏
  • 举报
回复
真是天天有这个的问题,我回答起码快十次了
先建立函数
CREATE FUNCTION GETSTR(@Fitemname NVARCHAR(20))
RETURNS NVARCHAR(200)
AS
BEGIN
DECLARE @str NVARCHAR(200)

SET @str=''

SELECT @str = @str+Fitemname2+','
FROM 你的表 WHERE Fitemname1=@Fitemname

SET @str = LEFT(@str,LEN(@str)-1)
RETURN @str
END

然后用下面语句就可以了
select Fitemname1,dbo.getstr(Fitemname1) from 你的表 group by Fitemname1
yujohny 2003-09-15
  • 打赏
  • 举报
回复
先建立函数
CREATE FUNCTION GETSTR(@Fitemname NVARCHAR(20))
RETURNS NVARCHAR(200)
AS
BEGIN
DECLARE @str NVARCHAR(200)

SET @str=''

SELECT @str = @str+Fitemname2+','
FROM 你的表 WHERE Fitemname1=@Fitemname

SET @str = LEFT(@str,LEN(@str)-1)
RETURN @str
END

然后用下面语句就可以了
select Fitemname1,dbo.getstr(Fitemname1) from 你的表group by Fitemname1
txlicenhe 2003-09-15
  • 打赏
  • 举报
回复
--1.创建一个合并的函数
create function fmerg(@id varchar(10))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+Fitemname2 from 表A where Fitemname1=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go

--调用自定义函数得到结果
select distinct Fitemname1,dbo.fmerg(id) as Fitemname2 from 表A

34,576

社区成员

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

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