在Oracle中,重复将值从集合分配给列

时间:2016-09-27 13:42:06

标签: oracle

我在Oracle中有一个表,我有一个列,我想从一组可能的值中赋值。我喜欢按重复的顺序为整个表分配值。

例如:

如果值集是{1,2,3}。我想在此模式中分配值,直到达到最后一行:

rowNum    someCol      valueCol
  1        this            1
  2         is             2
  3        some            3
  4        other           1
  5        column          2
  6         in             3
  7         the            1
  8        table           2

我无法弄清楚如何使用传统的更新语句执行此操作。有人可以帮助解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

使用Modulo实现欲望结果

UPDATE TableName
SET valueCol= CASE  WHEN rowNum % 3 == 1 then 1
                    WHEN rowNum % 3 == 2 then 2
                    WHEN rowNum % 3 == 0 then 3
              END

答案 1 :(得分:0)

update tablename 
  set valuecol = case mod(rownum, 3) when 0 then 3 else mod(rownum, 3) end
;