有没有办法在 SQL 中添加 ROW_NUMBER() 而无需使用 OVER (ORDER BY ...)
Is there a way to add ROW_NUMBER() without using OVER (ORDER BY ...) in SQL
有没有一种方法可以不使用 OVER (ORDER BY ...)
而仅根据默认行顺序添加 ROW_NUMBER()
?
table 中的行没有隐式排序,它是一个逻辑无序集。
但是你可以 row_number() over (order by (select null))
正如 Itzik Ben-Gan 在他关于 window functions
的书中所建议的那样。
对于 PostgreSQL 和 MYSQL 8.0
row_number()over()
对于 SQL 服务器和 oracle 它将是:
row_number()over(order by (select null))
但是这并没有提到正确的 order by 子句,它不能保证每次列的行号都相同。
有没有一种方法可以不使用 OVER (ORDER BY ...)
而仅根据默认行顺序添加 ROW_NUMBER()
?
table 中的行没有隐式排序,它是一个逻辑无序集。
但是你可以 row_number() over (order by (select null))
正如 Itzik Ben-Gan 在他关于 window functions
的书中所建议的那样。
对于 PostgreSQL 和 MYSQL 8.0
row_number()over()
对于 SQL 服务器和 oracle 它将是:
row_number()over(order by (select null))
但是这并没有提到正确的 order by 子句,它不能保证每次列的行号都相同。