我有一个SQLite 3.5.1版本。
我想知道如何在SQLite中使用Row_Number()
函数
我在3.5.1版中尝试了以下查询,但它不起作用,并显示错误消息:
"21-11-2020 10:11:05:SQL错误:接近";(":语法错误<选择*,ROW_NUMBER((OVER(ORDER BY IdNo(作为LibraryFolder的NoId">
Select *, ROW_NUMBER() OVER(ORDER BY IdNo) AS NoId
from LibraryFolder
您的SQLite版本不支持3.25.0版本中引入的窗口函数。
另一种做你想做的事情的方法是:
SELECT t.*,
(SELECT COUNT(*) FROM LibraryFolder WHERE IdNo <= t.IdNo) AS NoId
FROM LibraryFolder AS t
如果IdNo
不是唯一的,那么您需要附加条件,包括使用列rowid
来定义顺序:
SELECT t.*,
(
SELECT COUNT(*) + 1
FROM LibraryFolder
WHERE IdNo < t.IdNo OR (IdNo = t.IdNo AND ROWID < t.ROWID)
) AS NoId
FROM LibraryFolder AS t