我在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
我无法弄清楚如何使用传统的更新语句执行此操作。有人可以帮助解决这个问题吗?
答案 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
;