在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
。
答案 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;
屏幕截图
答案 2 :(得分:0)
SQlite不支持TOP
。那是sql-server语法。您必须改为使用limit 20
。