我需要对选定的行进行更新,这些行应按存储日期的列排序。 我需要这样的顺序的原因是我想根据日期顺序更新具有升序值的行。
如果可能的话,我很想在一个声明中得到它,我需要在我的java代码中使用它,所以我不想使用游标。
提前致谢
答案 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子句中为列设置多个值?