--写个函数
create function f_str(
@图编号 varchar(10)
)returns varchar(8000)
as
begin
declare @r varchar(8000)
set @r=''
select @r=@r+','+曲线代码
from 明细表
where 图编号=@图编号
return(stuff(@r,1,1,''))
end
go--调用实现查询
select a.*,曲线代码=dbo.f_str(图编号)
from 主表
create function f_str(
@图编号 varchar(10)
)returns varchar(8000)
as
begin
declare @r varchar(8000)
set @r=''
select @r=@r+','+曲线代码
from 明细表
where 图编号=@图编号
return(stuff(@r,1,1,''))
end
go--调用实现查询
select a.*,曲线代码=dbo.f_str(图编号)
from 主表
@图编号 varchar(30)
)
returns varchar(600)
as
begin
declare @r varchar(600)
set @r=''
select @r=@r+','+rtrim(曲线代码) from 明细表 where 图编号=@图编号
if @r<>'' set @r=stuff(@r,1,1,'')
return @r
end
go--查询:
select *,dbo.fn_曲线代码(图编号) as 曲线代码 from 主表
@图编号 varchar(30)
)
returns varchar(600)
as
begin
declare @r varchar(600)
set @r=''
select @r=@r+','+rtrim(曲线代码) from 明细表 where 图编号=@图编号
if @r<>'' set @r=stuff(@r,1,1,'')
return @r
end
go--查询:
select *,dbo.fn_曲线代码(图编号) as 曲线代码 from 主表
CSDN搞什么?
create table 主表(图编号 varchar(10),图类型 varchar(10),长度 decimal(10,2),所耗人工时 decimal(10,1))
insert 主表 select 'A1','组',0.32,1.2
union all select 'A2','类',2.5,4.5create table 明细表(图编号 varchar(10),曲线代码 varchar(10))
insert 明细表 select 'A1','SB'
union all select 'A1','AC'
union all select 'A2','DG'
union all select 'A1','PL'
union all select 'A2','AC'
go--写个函数
create function f_str(
@图编号 varchar(10)
)returns varchar(8000)
as
begin
declare @r varchar(8000)
set @r=''
select @r=@r+','+曲线代码
from 明细表
where 图编号=@图编号
return(stuff(@r,1,1,''))
end
go--调用实现查询
select *,曲线代码=dbo.f_str(图编号)
from 主表
go--删除测试
drop table 主表,明细表
drop function f_str/*--测试结果图编号 图类型 长度 所耗人工时 曲线代码
---------- ---------- ------------ ------------ --------------
A1 组 .32 1.2 SB,AC,PL
A2 类 2.50 4.5 DG,AC(所影响的行数为 2 行)
--*/