UPDATE列,其最大值为oracle中没有PL / SQL的每一行

时间:2013-12-23 10:27:55

标签: sql oracle max

我想更新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的每一行作为增加的唯一值

你能帮帮我吗

2 个答案:

答案 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;

我不确定。