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
请高手指点如何实现?
你好,朋友。
谢谢你能及时给我答复,可我试了一下没试通。
还有没有更好的解决办法?求您了
展开
 我来答
wenchaojian
2007-09-20 · TA获得超过1179个赞
知道答主
回答量:61
采纳率:0%
帮助的人:103万
展开全部
可以这样子写
先写一个自定义函数

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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
y_l990
2007-09-19 · TA获得超过211个赞
知道小有建树答主
回答量:464
采纳率:0%
帮助的人:134万
展开全部
你的查询语句怎么写的啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式