-2

我正在使用 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

请让我知道,命令中是否有任何错误或为我的方案提供任何建议。

谢谢

4

2 回答 2

1

您忘记了使用OVER()带有ROW_NUMBER.

尝试以下查询。

SELECT * FROM (SELECT * , ROW_NUMBER() OVER (ORDER BY [ID]) AS RowNum 
  FROM [tblVGTest] ) AS Temp WHERE RowNum BETWEEN 0 AND 100

我已从中删除WHERE子句,因为它没有任何标准。如果你需要,你可以放。

于 2017-03-28T15:06:35.600 回答
0

如果您使用 SQL Server Compact 4.0,则可以使用 OFFSET / FECTCH 语法:

SELECT * FROM TransactionHistory   
ORDER BY TransactionDate DESC
OFFSET 0 ROWS FETCH NEXT 100 ROWS ONLY;
于 2017-03-30T06:23:53.557 回答