如何用SQL语句实现子分类中的不同项目自动添加数字编号?
比如,我想完成下面的需求:表A中处理前的数据如图上半部分所示,对于同一个ID,SUB1_ID和SUB2_ID暂为空,但是已经有SUB1_NAME和SUB2_NAME的具体...
比如,我想完成下面的需求:
表A中处理前的数据如图上半部分所示,
对于同一个ID,SUB1_ID和SUB2_ID暂为空,但是已经有SUB1_NAME和SUB2_NAME的具体描述,需要做的工作是获取同一个ID下不同的SUB1_NAME和SUB2_NAME,生成编号并插入SUB1_ID和SUB2_ID字段中,注意,SUB1和SUB2不是级联关系,两者都是同一个ID下的一个属性。
我最后想得到的结果如图下半部分所示。 展开
表A中处理前的数据如图上半部分所示,
对于同一个ID,SUB1_ID和SUB2_ID暂为空,但是已经有SUB1_NAME和SUB2_NAME的具体描述,需要做的工作是获取同一个ID下不同的SUB1_NAME和SUB2_NAME,生成编号并插入SUB1_ID和SUB2_ID字段中,注意,SUB1和SUB2不是级联关系,两者都是同一个ID下的一个属性。
我最后想得到的结果如图下半部分所示。 展开
展开全部
有个问题:你为什么强调“同一个ID下”?
如果跟是不是在“同一个ID下”没有半毛钱关系,你的问题可以简化成:查出来的每条记录里面SUB_NAME是存在的,SUB_ID是空着的,现在要把相同的SUB_NAME赋予相同的SUB_ID。
如果我的理解是正确的话,那么:
1、你另外建一张表,比如叫SUB_ID_NAME_COMP,然后一个字段是SUB_ID,另一个是SUB_NAME,然后你在这张表里面把对应关系整理好;
2、写下面这个脚本搞起:
select 'update A set a.sub1_id=' ||
(select x.sub_id
from SUB_ID_NAME_COMP x
where x.sub_name = a.sub1_name) || ', a.sub2_id=' ||
(select x.sub_id
from SUB_ID_NAME_COMP x
where x.sub_name = a.sub2_name) || ' where a.sub1_name=' ||
A.SUB1_NAME || ' and a.sub2_name=' || A.sub2_name || ';'
from A;
其它,如果跟“同一个ID”有关系的话,上面的脚本在写的时候再把ID相关的信息带进去做好控制。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询