我有一个select查询 RowNumber()
函数,所以我在结果中有一个分区的行号。
我想达到什么目的?我想更新每个分区的所有行号,除了每个分区的最后一行。假设我们有行数 1,2,3,4
另一个分区 1,2
我想做一个update子句来更新除number以外的所有行号 4
(第一个分区)并排除行号 2
第二个分区的。
我知道我们可以在where子句中使用一个简单的条件排除第一行号,比如 RowNumber != 1
但是在这种情况下,我需要每个分区的最后一行的编号,而这个编号在所有分区中都是不同的。
我怎样才能做到这一点?当做
5条答案
按热度按时间cgfeq70w1#
您可以使用一个可更新的cte,但是可以反转
order by
在row_number()
:uinbv5nw2#
因为您没有提供任何sql。根据您的问题,我可以考虑将结果放入子查询并使用最大行数。或者最好提供一些sql和示例数据,以便更清晰。
xytpbqjk3#
你可以改变主意
ORDER BY
从句ASC to DESC
或者DESC to ASC
您可以根据需要继续更新f4t66c6m4#
这也会起作用:
egdjgwm85#
正如许多其他人所建议的那样,将顺序颠倒过来会使它简单得多,因为第1行是您不想更新的行。
一定要用
你应该走上正确的道路。