sql - SQL:根据属性顺序对行进行排序
问题描述
我想将一个属性(称为position
)的值排序为另一个属性排序的行号。
示例:如果我有以下属性:位置,点我想按点(降序)对表格进行排序,然后分配position
有序的行号例如。
Position --- Points
1 ------------ 99
2 ------------ 97
3 ------------ 81
etc..
解决方案
您可以使用窗口函数 row_number()
由于OP想要更新记录
with data
as (
select row_number() over(order by points desc) as rnk_position
,position
,points
from leagueParticipantView /* Is this a view or a table*/
where leagueName LIKE &leagueName
)
update data
set position = rnk_position
推荐阅读
- ios - UIMainScreen 不是函数错误 NativeScript iOS
- android - Firebase 数据库永久连接
- java - 关于 org.springframework.messaging.MessageHeaders.get() 的声纳
- haskell - 为什么这个简单的组合不起作用?
- css - 任何人都可以在css文件中提供一些关于“-webkit”的信息吗?
- python - Python中C类型整数的最大值和最小值
- javascript - 如何验证复杂对象
- oracle - 从视图调用过程/包
- malloc - 将 GLIBC malloc() M_MMAP_THRESHOLD 增加到 1GB 的影响
- json - 谷歌物联网 JWT 到期