我想用行号更新表列。empid
列中的每一行都应使用相关的行号进行更新。
我尝试了以下查询。
UPDATE employee SET empid = row_number();
但这是行不通的。任何想法?
最佳答案
首先,这不是row_number()
函数的正确语法,因为您缺少over
子句(导致ORA-30484错误)。即使是这样,这也行不通,因为您不能直接在set
子句中使用窗口函数(导致ORA-30483错误)。
但是,对于这种用例,您可以只使用rownum
伪列:
UPDATE employee SET empid = ROWNUM;
SQLFiddle