SQL中怎么把A表一个字段的值分别提出来填进B表不同的字段??

表A中的一个字段FPara的值为母项id=12112236001子项id=412112236001011,412112236001021,412112236001031,... 表A中的一个字段FPara的值为
母项id=12112236001 子项id =412112236001011,412112236001021,412112236001031,412112236001041,412112236001051,412112236001061,412112236001071,412112236001081,412112236001101,412112236001121,412112236001451,412112236001451,412112236001452,412112236001461,412112236001462,412112236001471,412112236001491,412112236001511,412112236001512,412112236001141 子项数量=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 计划百分比=0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,98.1 专项控制=T 物料形态属性=9,10,9,10,10,10,10,10,9,10,9,9,9,9,9,9,9,9,9,10

问题要求:怎么在SQL中实现分别提取出该字段的数据填进下图??

需要的效果如下图(只做了部分):
展开
 我来答
星河追梦者nn
2013-03-19 · TA获得超过156个赞
知道答主
回答量:60
采纳率:0%
帮助的人:48.4万
展开全部
Declare @S1 varchar(100)
Select @S1='母项id=546456 子项id=32423,2342,2342,45645 子项数量=3 计划百分比=0.1 专项控制=T 物料形态属性=1'
select top 5 right(left(@S1,charindex(' ',(@S1))-1),charindex('=',REVERSE(left(@S1,charindex(' ',(@S1))-1)))-1) 母项id,

--left( substring(@S1,charindex(' 物料形态属性=',@S1)+8,len(@S1)),charindex(' ', substring(@S1,charindex(' 物料形态属性=',@S1)+8,len(@S1)))-1),
left( substring(@S1,charindex(' 专项控制=',@S1)+6,len(@S1)),charindex(' ', substring(@S1,charindex(' 专项控制=',@S1)+6,len(@S1)))-1) as 专项控制,
left( substring(@S1,charindex(' 计划百分比=',@S1)+7,len(@S1)),charindex(' ', substring(@S1,charindex(' 计划百分比=',@S1)+7,len(@S1)))-1) as 计划百分比,
left( substring(@S1,charindex(' 子项数量',@S1)+6,len(@S1)),charindex(' ', substring(@S1,charindex(' 子项数量',@S1)+6,len(@S1)))-1) as 子项数量,
left( substring(@S1,charindex(' ',@S1)+6,len(@S1)),charindex(' ', substring(@S1,charindex(' ',@S1)+6,len(@S1)))-1) as 子项id
,
right(@S1,charindex('=',REVERSE(@S1))-1) as 物料形态属性
yangliwei100
2013-03-19 · TA获得超过2258个赞
知道小有建树答主
回答量:2216
采纳率:50%
帮助的人:725万
展开全部
可以通过SQL游标来实现。
第个游标里面再实现母项ID与其它项目对应插入。
在游标里面实现一个分析字符串到字段的操作……有点复杂。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-03-19 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5168万
展开全部
insert into B(a,b,d,c,e)
select a,b,d,c,e from A where xxx
追问
A表中只取FPara一个字段的内容分割插入B表中的不同字段,且子项ID有多少个就插入多少行
追答
insert into B(a,b,d,c,e)
select a,a,a,a,a from A where xxx
你说的子项有多少行是指A表的还是B表的啊?你上面的图都没看懂是A表的还是B表的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
redye2
2013-03-19
知道答主
回答量:34
采纳率:0%
帮助的人:28万
展开全部
insert into B表(id_B,子项数量_B,计划百分比_B,专项控制_B,物料形态属性_B) select id,子项数量,计划百分比,专项控制,物料形态属性 from A表
A表与B表字段位置对应该上,字段类型一样就行
追问
比如子项有20个就要在B表中插入20行
追答
上面的SQL能实现的
要分割就用SUBSTR
insert into B(a1,a2,a3,b,d,c,e)
select substr(a,1,1),substr(a,2,1),substr(a,3),b,d,c,e from A where xxx
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式