-2

我在 PL/SQL 中有以下游标:

ID     Team     OrigRank     RegSesRank
7844   XXX      2            8
7854   YYY      1            1

我需要能够编写某种 if-else 语句来交换origRank值,如果RegSesRank大于另一个RegSesRank

即上面不会改变,因为7844有一个大于RegSesRank因此7854OrigrRank应该改变,但是,如果有一个更大的,OrigRank必须交换。7854RegSesRank

我希望我很清楚。如果您有任何问题,请告诉我,我非常感谢您的帮助

4

1 回答 1

0

我不会用 PL/SQL 游标中的 if/else 语句解决这个问题,因为它引用查询的其他行。相反,如有必要,我会使用 anUPDATE将所有 origRank 更改为新值。

通常的方式是嵌套的UPDATE (SELECT ... FROM mytable JOIN ... ) SET origrank = newrank WHERE origrank != newrank。举个例子,我们需要知道@Joe W 和@Dour High Arch 指出的新排名是如何计算的。

于 2012-12-22T16:09:50.407 回答