我在 SQL Server 论坛上找到了有关如何对表中的记录重新排序的解决方案。
UPDATE SomeTable
SET rankcol = SubQuery.Sort_Order
FROM
(
SELECT IDCol, Row_Number() OVER (ORDER BY ValueCOL) as SORT_ORDER
FROM SomeTable
) SubQuery
INNER JOIN SomeTable ON
SubQuery.IDCol = SomeTable.IDCol
Run Code Online (Sandbox Code Playgroud)
当我尝试在 PostgreSQL 上做同样的事情时,我收到一条错误消息 -
错误:多次指定表名“sometable”
任何帮助将不胜感激。
谢谢!
你不需要显式加入 SomeTable,这有多酷?:)
UPDATE SomeTable
SET rankcol = SubQuery.Sort_Order
FROM
(
SELECT IDCol, Row_Number() OVER (ORDER BY ValueCOL) as SORT_ORDER
FROM SomeTable
) SubQuery
where SubQuery.IDCol = SomeTable.IDCol
Run Code Online (Sandbox Code Playgroud)
备注:Postgres的是不区分大小写,最好使用小写,如row_number,sort_order,id_col,等。
| 归档时间: |
|
| 查看次数: |
2644 次 |
| 最近记录: |