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中实现分别提取出该字段的数据填进下图??
需要的效果如下图(只做了部分): 展开
母项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中实现分别提取出该字段的数据填进下图??
需要的效果如下图(只做了部分): 展开
展开全部
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 物料形态属性
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 物料形态属性
展开全部
可以通过SQL游标来实现。
第个游标里面再实现母项ID与其它项目对应插入。
在游标里面实现一个分析字符串到字段的操作……有点复杂。
第个游标里面再实现母项ID与其它项目对应插入。
在游标里面实现一个分析字符串到字段的操作……有点复杂。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
insert into B(a,b,d,c,e)
select a,b,d,c,e from A where xxx
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表的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
insert into B表(id_B,子项数量_B,计划百分比_B,专项控制_B,物料形态属性_B) select id,子项数量,计划百分比,专项控制,物料形态属性 from A表
A表与B表字段位置对应该上,字段类型一样就行
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询