sqlserver用sql语句查询结果插入到新的数据库中
例如:有两个数据库A和BA:字段:类别,内容;其对应值为:101,a101,b101,c102,d102,e查询相同类别的内空到B库对应的类别和内容字段中,插入B后的什为...
例如:有两个数据库A和B
A:字段:类别,内容;其对应值为:
101,a
101,b
101,c
102,d
102,e
查询相同类别的内空到B库对应的类别和内容字段中,插入B后的什为:
101,a,b,c
102, d,e
请高手指点如何实现?
你好,朋友。
谢谢你能及时给我答复,可我试了一下没试通。
还有没有更好的解决办法?求您了 展开
A:字段:类别,内容;其对应值为:
101,a
101,b
101,c
102,d
102,e
查询相同类别的内空到B库对应的类别和内容字段中,插入B后的什为:
101,a,b,c
102, d,e
请高手指点如何实现?
你好,朋友。
谢谢你能及时给我答复,可我试了一下没试通。
还有没有更好的解决办法?求您了 展开
2个回答
展开全部
可以这样子写
先写一个自定义函数
create function cre_funcation(@a int)
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+rtrim(a.b) from test a
where a.a=@a
if len(@str)>0
begin
set @str=right(@str,len(@str)-1)
end
else
begin
set @str='无'
end
return @str
end
表A的字段分别为a和B,我写的测试表名为test,如果有必要你自己改一下
表B的字段也为A和B
这个自定义函数的功能是传入一个A表中的第一个字段的唯一值,得到表A中所有分组相同的一行值
再用一个游标,从A表中查询出不同的字段1
用这个函数即可手稿到表B中
再用游标插入
DECLARE @a int--申明一个变量,用来记录A表中的唯一A列
DECLARE cur CURSOR FOR
SELECT distinct a
FROM test
OPEN cur
FETCH NEXT FROM cur
INTO @a
WHILE @@FETCH_STATUS = 0
BEGIN
--往B表中插入组合后的东西,关键就是用到刚才写的那个函数
insert into b
select @a,dbo.cre_funcation(@a)
FETCH NEXT FROM cur
INTO @a
END
CLOSE cur
DEALLOCATE cur
如果你的B表结构也是A,B字段,则就可以了,请自建我的那两个测试表
插入B表还有一种方法
首先把A表中的唯一第一列手稿一个临时表
select distinct a into #tmp from test
--再这样
insert into b
select a,dbo.cre_funcation(a) from #tmp
这样就插入入
你再查一下B表就可以看到结果了
select * from b
先写一个自定义函数
create function cre_funcation(@a int)
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+rtrim(a.b) from test a
where a.a=@a
if len(@str)>0
begin
set @str=right(@str,len(@str)-1)
end
else
begin
set @str='无'
end
return @str
end
表A的字段分别为a和B,我写的测试表名为test,如果有必要你自己改一下
表B的字段也为A和B
这个自定义函数的功能是传入一个A表中的第一个字段的唯一值,得到表A中所有分组相同的一行值
再用一个游标,从A表中查询出不同的字段1
用这个函数即可手稿到表B中
再用游标插入
DECLARE @a int--申明一个变量,用来记录A表中的唯一A列
DECLARE cur CURSOR FOR
SELECT distinct a
FROM test
OPEN cur
FETCH NEXT FROM cur
INTO @a
WHILE @@FETCH_STATUS = 0
BEGIN
--往B表中插入组合后的东西,关键就是用到刚才写的那个函数
insert into b
select @a,dbo.cre_funcation(@a)
FETCH NEXT FROM cur
INTO @a
END
CLOSE cur
DEALLOCATE cur
如果你的B表结构也是A,B字段,则就可以了,请自建我的那两个测试表
插入B表还有一种方法
首先把A表中的唯一第一列手稿一个临时表
select distinct a into #tmp from test
--再这样
insert into b
select a,dbo.cre_funcation(a) from #tmp
这样就插入入
你再查一下B表就可以看到结果了
select * from b
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的查询语句怎么写的啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询