我想更新ORACLE / DB中的表的列。我有一个包含code = 0
的列,我希望将其替换为此列的最大值。每个具有0的行都需要更改并从表中获取列的新的最大值。
我只会这样做,这就是为什么我不需要PL / SQL。
例如,如果我有
CLIENT CODE
JOJO 99
JUJU 0
JAJA 0
我希望它成为
CLIENT CODE
JOJO 99
JUJU 100
JAJA 101
如果我这样做
update CLIENT set CODE = (select MAX(CODE) from CLIENT)+1 WHERE CODE = 0;
不幸的是,命令put(假设我的最大值为99)我的所有行中的值为code = 0
我想要code = 0
的每一行作为增加的唯一值
你能帮帮我吗
答案 0 :(得分:3)
使用rownum代替1:
update CLIENT set CODE = (select MAX(CODE) from CLIENT)+ROWNUM WHERE CODE = 0;
答案 1 :(得分:0)
试试这个,这可能适合你:
UPDATE table_name
set t.CODE=(SELECT max(Code)+1 from table_name t)
WHERE CODE=0;
我不确定。