--try
Create function GetStr(@no varchar(10))
returns varchar(200)
as
begin
declare @s varchar(200)
set @s=''
select @s=@s+','+[year]+'' from B where no=@no
return stuff(@s,1,1,'')
endselect
no=a.no,
name=a.name
合并=dbo.GetStr(a.no)
from A
group by a.no,a.name
Create function GetStr(@no varchar(10))
returns varchar(200)
as
begin
declare @s varchar(200)
set @s=''
select @s=@s+','+[year]+'' from B where no=@no
return stuff(@s,1,1,'')
endselect
no=a.no,
name=a.name
合并=dbo.GetStr(a.no)
from A
group by a.no,a.name
解决方案 »
- 表的字段数量不固定,但要求和
- 在并存SQL2000和SQL2005数据库的服务器配置镜像问题
- 复制的表为什么原表比新表大好多?
- SQL明细与求和连接在一起速度慢
- 请大家帮忙解释一下这条语句的意思,特别是第一句
- 如何启动SQLSERVER服务管理器?
- 这样实时查询数据库的方法是否有效?
- 十万火急!!!一个 带表格和框图的word 文档怎么存入sql 2000 中,应该属于哪种数据类型.???
- 高分求一sql语句,如何在sql语句中将一图形文件的内容直接插入到表中的image字段中
- 我的bcp为什么会出错?
- 建表问题:如何默认将一个字段中的值为其中两个字段中的值的乘积
- 一个查询语句Access和SqlServer得到两种结果
create table a
(
no int primary key,
name varchar(30)
)create table b
(
no int references a(no),
year varchar(30)
)
go
--追加测试数据
insert a( no, name) values ( 1,'单位1' )
insert a( no, name) values ( 2,'单位2' )
insert a( no, name) values ( 3,'单位3' )insert b( no, year) values (1, '2001')
insert b( no, year) values (1, '2003')
insert b( no, year) values (1, '2004')
go--创建自定义函数
create function dbo.CX(@no varchar(20))
returns varchar(8000)
as
begin
declare @s varchar(8000)
set @s = ''
select @s = @s + ',' + [year] from b where no=@no
set @s = stuff(@s,1,1,'')
return @s
end
goselect * from a--调用
select no,name,dbo.cx(no) as Title
from a
--删除临时表和自定义函数
drop table b,a
drop function CX--测试结果
a name Title
-------------------------
1 单位1 2001,2003,2004
2 单位2
3 单位3