下面 2 个语句给出 2 个不同的结果
SELECT t.EID,t.name, ROW_NUMBER() OVER(ORDER BY 1) AS ROW_NUM
FROM ESWAR t
;
Run Code Online (Sandbox Code Playgroud)
SELECT t.EID,t.name, ROW_NUMBER() OVER(ORDER BY 1) AS ROW_NUM
FROM ESWAR t
;
Run Code Online (Sandbox Code Playgroud)
EID NAME ROW_NUM
2 Ram 1
1 Siva 2
3 Deva 3
Run Code Online (Sandbox Code Playgroud)
SELECT t.EID, t.name,ROW_NUMBER() OVER(ORDER BY t.EID) AS ROW_NUM
FROM ESWAR t
;
Run Code Online (Sandbox Code Playgroud)
从“关于 SQL 函数”-“分析函数”-“order_by_clause”:
ORDER BY 条款的限制
以下限制适用于该
ORDER BY条款:
- (...) 位置 (
position) 和列别名 (c_alias) 也无效。(……)
所以不,不能在ORDER BYofOVER子句中使用列位置。因此,它被简单地视为整数文字。由于所有行的文字都相同,因此没有定义的顺序。
只需使用列名即可。无论如何它更清楚——这也适用于加号的ORDER BY子句SELECT,如果列的顺序改变,它不会中断。
| 归档时间: |
|
| 查看次数: |
269 次 |
| 最近记录: |