如何用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下的一个属性。

我最后想得到的结果如图下半部分所示。
展开
 我来答
Dream似故人来
2014-06-30 · 超过14用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:22万
展开全部

有个问题:你为什么强调“同一个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相关的信息带进去做好控制。

更多追问追答
追问

我之所以强调"同一个ID"是因为实际上我的数据是下面这种形式的:


追答
就你的问题来看,ID是不是一样的没有影响,我上面写的那个脚本可以直接拿来用,你试试...
鲸鱼爸爸
2014-06-30 · TA获得超过472个赞
知道小有建树答主
回答量:614
采纳率:0%
帮助的人:422万
展开全部
Rank 函数可以实现你的要求。具体百度下Rank的用法吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Harder2Luckier
2014-06-30
知道答主
回答量:6
采纳率:0%
帮助的人:8220
展开全部
我去,骥哥,我都不怎么记得这些了啊~感觉好陌生
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式