我在PL / SQL中有以下光标:
ID Team OrigRank RegSesRank
7844 XXX 2 8
7854 YYY 1 1
我需要能够编写某种if-else语句来交换origRank
值 IF ,其RegSesRank
大于其他RegSesRank
}
即。上述内容不会更改,因为7844
的{{1}}比RegSesRank
更高,因此7854
不应更改,但是OrigrRank
必须在OrigRank
转换7854
有一个更大的RegSesRank
。
我希望我很清楚。如果您有任何问题,请告诉我,我真的非常感谢您的帮助
答案 0 :(得分:0)
我不会用PL / SQL游标中的if / else语句解决这个问题,因为它引用了查询的其他行。相反,如果需要,我会使用UPDATE
将所有origRank更改为新值。
通常的方法是嵌套UPDATE (SELECT ... FROM mytable JOIN ... ) SET origrank = newrank WHERE origrank != newrank
。举个例子,我们需要知道@Joe W和@Dour High Arch指出的新等级是如何计算的。