Row_Number()函数在sqlite 3.5.1版本中不起作用



我有一个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

最新更新