create function getstr(@父图号 int)
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+rtrim(子图号) from 你的表 where 父图号=@父图号
select @str=right(@str,len(@str)-1) where @str<>''
return @str
end
go--调用:
select 父图号,dbo.getstr(父图号) 子图号 from 你的表 group by 父图号
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+rtrim(子图号) from 你的表 where 父图号=@父图号
select @str=right(@str,len(@str)-1) where @str<>''
return @str
end
go--调用:
select 父图号,dbo.getstr(父图号) 子图号 from 你的表 group by 父图号
select 父图号,min(子图号)+','+max(子图号) as 子图号
from 你的表 group by 父图号
select 父图号,min(子图号)+','+max(子图号) as 子图号
from 你的表 group by 父图号
create function fmerg(@父图号 varvhar(50))
returns varchar(8000)
as
begin
declare @re varchar(8000)
set @re=''
select @re=@re+','+子图号 from 你的表 where 父图号=@父图号
set @re=substring(@re,2,8000)
return(@re)
go--调用此函数来查询
select 父图号,dbo.fmerg(父图号) from(select distinct 父图号 from 你的表) a
Create function getstr(@id Nchar(100))
returns Nvarchar(4000)
as
begin
declare @str Nvarchar(4000),@分隔符 Nvarchar(10)
set @分隔符=N','
set @str=N''
select @str=@str+rtrim(Col)+@分隔符 from 表名
--------------------------------^^^^要相加的字段名
where 相加条件字段=@id
set @str=left(@str,len(@str)-1)落 ---却除最后一个分隔符
return @str
end
GO2,调用
select 条件字段,dbo.getstr(条件字段) from 表名 group by 条件字段
A1 B,C得到的怎么是这个结果?????
[unit] [int] NOT NULL ,
[name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
create function getstr(@unit int)
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+rtrim(name) from aa where unit=@unit
select @str=right(@str,len(@str)-1) where @str<>''
return @str
end
go--调用:
select unit,dbo.getstr(unit) name from aa group by unit前两个人说的完全正确,可能是你自己那里写错了。要不你就把上面这段语句在查询分析器中执行一下。