更新已订购的选定行

时间:2012-03-01 20:40:37

标签: sql oracle11g sql-update

我需要对选定的行进行更新,这些行应按存储日期的列排序。 我需要这样的顺序的原因是我想根据日期顺序更新具有升序值的行。

如果可能的话,我很想在一个声明中得到它,我需要在我的java代码中使用它,所以我不想使用游标。

提前致谢

2 个答案:

答案 0 :(得分:3)

看起来Oracle有ROW_NUMBER和PARTITION,那么这样的事情怎么样:

UPDATE MyTable
SET MyTable.Value = RowNum
FROM MyTable
    JOIN
    (
        SELECT ID, 
            ROW_NUMBER() OVER (PARTITION BY UserName ORDER BY MyDate) AS RowNum
        FROM MyTable AS InnerTable
    ) AS Hierarchy
        ON MyTable.ID = Hierarchy.ID

由于您的示例似乎没有提供足够的架构,因此我必须编写一些列才能使其工作。但是,一般来说,这样的事情应该起作用

答案 1 :(得分:0)

如何在SET子句中为列设置多个值?