我有两列,A和B: A有一些主键ID:
Actions build = new Actions(driver);
build.moveToElement(sbmElement).build().perform();
driver.sleep(5000);
我想有一个脚本,可以遍历表并用
填充 A B
_ _ _ _ _ _ _ _ _ _
DCS000111 Null
DCS000112 Null
DCS000113 Null
DCS000115 Null
DCS000119 Null
值
null
像这样:
[1, 2, 3]
先谢谢。
我知道使用单个值替换B列中的值的脚本,但不确定使用此方法。
答案 0 :(得分:3)
您可以使用以下内容分配select
中的值:
select a, mod(row_number() over (order by a) - 1, 3) + 1 as b
from t;
在Oracle中进行更新是一件痛苦的事。您可以使用merge
:
merge into t using
(select a, mod(row_number() over (order by a) - 1, 3) + 1 as b
from t
) tt
on t.a = tt.a
when matched then update set t.b = tt.b;
答案 1 :(得分:0)
查看NTILE
功能。
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions101.htm
只需根据您的分区和订购要求进行申请,并形成UPDATE
声明。
update MyTable
set B=t from
(
select
NTILE(3) over (order by A) as t from MyTable
) as z
答案 2 :(得分:0)
如果您不关心1,2,3的顺序(并且您的表格记录有任何变化,您为什么会这样做?)这只是一个问题:
update your_table
set b = mod(rownum,3)+1
/
答案 3 :(得分:0)
我获取了原始表的副本,并创建了一个新表,使用1, 2, 3
(Value1,Value2,Value3)信息填充/重新填充所需的列;然后使用MOD
使用以下查询合并两个表。
INSERT INTO SELECT ColA,DECODE(MOD(rownum,3),0,'Value1',1,'Value2',2,'Value3')AS ColB FROM;