我在oracle表中有一些数据abot 10,000行我想生成列,其中ist行返回1,第二行返回2,依此类推1代表3代,2代表4代,1代表5代,2代表6代,依此类推。 。有什么办法,我可以使用sql查询或任何可以像我这样更新我的列的脚本。它会生成1,2,因为我上面提到我想了很多,但我没有用sql做到这一点或者我的requirements.plz的任何其他scencrio帮助,如果有任何可能与我的表数据
这样做答案 0 :(得分:1)
您可以使用ROWNUM
和MOD
功能的组合。
您的查询将如下所示:
SELECT ROWNUM, 2 - MOD(ROWNUM, 2) FROM ...
对于偶数行,MOD
function将返回0,对于奇数行,将返回1。
答案 1 :(得分:0)
select mod(rownum,5)+1,fld1, fld2, fld3 from mytable;
编辑: 我没有误解要求,我在他们周围工作。添加列然后以这种方式更新表是一个糟糕的设计理念。表很少是完全静态的,甚至是规则和验证表。这可能有意义的唯一一次是表是否被锁定以防止删除,插入和更新。对任何现有行的任何更改都可以更改逻辑顺序。从未指定过。删除意味着必须重写整个序列。更新和插入可以具有相同的效果。
如果你想这样做,你可以使用一个序列来插入一个假的计数器。假设您知道顺序并且可以根据该顺序控制插入和更新的序列,它会反复循环。