欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

怎么增加一列循环数字的辅助列

更新时间: 2014-01-05 02:14:15 责任编辑: Author_N1

 

如何增加一列循环数字的辅助列
比如我有如下的表
ID    NAME
1     A
2     B
3     C
4     D
5     E
6     F
7     G
...
...
现在要增加一列辅助列,以指定的数字无限循环,比如指定是3
结果如下,就是原表不动,增加一列
ID    NAME   newcol
1     A      1
2     B      2
3     C      3
4     D      1
5     E      2
6     F      3
7     G      1
8     H      2
...
...
感觉要用rownumber来做,但想了半天貌似没有简便方法.
求大神指点
--参考方法--
update table
set newcol=id%3
可行不?
--参考方法--
楼上id%3 只能生成0,1,2的值。顺便提下,oracle中取余是MOD。当然rownu是看你的数据存储顺序的,假如你不需要考虑这个顺序问题的话,如下SQL:

SQL> update tab_simo set age = (case when mod(rownum,3)=0 then 3 else mod(rownum,3) end);
 
8 rows updated
 
SQL> select * from tab_simo;
 
        ID NAME           AGE
---------- ------- ----------
         1 A                1
         2 B                2
         3 C                3
         4 D                1
         5 E                2
         6 F                3
         7 G                1
         8 H                2
 
8 rows selected

--参考方法--
decode(MOD(a.id,3),0,3,MOD(a.id,3))
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:14:15
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7355/
本文WWW.DOC100.NET DOC100.NET版权所有。