SQlite LIMIT和[ROW_NUMBER]

时间:2015-02-19 13:47:26

标签: sqlite

在SQL中,此命令可以正常工作:

查询

SELECT TOP 20 * FROM 
(
    SELECT ROW_NUMBER() OVER (ORDER BY t0.ProductId) AS [ROW_NUMBER], *
    FROM Product AS [t0]
)  AS [t1]
WHERE [t1].[ROW_NUMBER] > 0 * 20;

现在我尝试使用SQLite。我知道我必须用TOP替换LIMIT,但不知道放在哪里。
我总是得到像

这样的东西

错误

  

SQLite错误附近"(&#34 ;:语法错误"或" SQLite错误附近" *":语法错误"。

我不确定命令[ROW_NUMBER]ROW_NUMBER()是否适用于SQlite

3 个答案:

答案 0 :(得分:1)

请参阅documentation

SELECT *
FROM Product
LIMIT 20
OFFSET 0  -- optional

答案 1 :(得分:1)

<强>查询

SELECT *, 
(
    SELECT COUNT(*) 
    FROM Product b  
    WHERE a.ProductId >= b.ProductId
) AS rnum
FROM Product a LIMIT 20;

屏幕截图

enter image description here

答案 2 :(得分:0)

SQlite不支持TOP。那是sql-server语法。您必须改为使用limit 20