我在WinForms应用程序中工作。我的要求是按需从sql加载数据(即当移动到该页面时,为该页面加载100条记录(。所以我在 SqlCommand 下面尝试过,但它在以下命令中抛出异常来代替"ROW_NUMBER(("语法,
SELECT *
FROM (SELECT *
, ROW_NUMBER() (ORDER BY [ID]) AS RowNum
FROM [tblVGTest]
WHERE [ID]) AS Temp
WHERE RowNum BETWEEN 0 AND 100
请让我知道,命令中是否有任何错误或为我的方案提供任何建议。
谢谢
您忘记将子句与ROW_NUMBER
一起使用OVER()
子句。
请尝试以下查询。
SELECT * FROM (SELECT * , ROW_NUMBER() OVER (ORDER BY [ID]) AS RowNum
FROM [tblVGTest] ) AS Temp WHERE RowNum BETWEEN 0 AND 100
我已经从中删除了WHERE
条款,因为它没有任何标准。如果需要,您可以放置。
如果使用 SQL Server Compact 4.0,则可以使用 OFFSET/FECTCH 语法:
SELECT * FROM TransactionHistory
ORDER BY TransactionDate DESC
OFFSET 0 ROWS FETCH NEXT 100 ROWS ONLY;