我正在尝试了解MySQL ROW_NUMBER()函数以及如何使用它为结果集中的每一行生成一个顺序号。
到目前为止我尝试过的事情:
SELECT *,
ROLL_NUMBER()
OVER(PARTITION BY examid ORDER BY examid) AS id
from exam
运行此查询时,显示了一系列错误:
在分析过程中发现3个错误。
An alias was previously found. (near "id" at position 68) An alias was expected. (near " " at position 67) Unexpected token. (near "id" at position 68)
1064-您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的“(LIMIT 0,25的考试编号为ORDER BY的ORDER BY的ID)附近”使用
我该怎么办?
谢谢。
答案 0 :(得分:0)
将I更改为其他名称,因为select *语句将返回一个ID,并且将与我的ID(AS ID)冲突
答案 1 :(得分:0)
我有同样的问题。这种语法适用于我的情况:
SELECT
(ROW_NUMBER() OVER (ORDER BY id)) row_number, Field1, Field2
FROM
myTable
ORDER BY
id
其他说明:select version()
返回10.3.20-MariaDB-log
。