解析查询时出错.[ 令牌行号 = 1,令牌行偏移量 = 39,标记错误 = ( ]



我在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;

最新更新