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

时间:2017-03-28 14:42:20

标签: c# sql-server winforms sqlcedatareader

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

请告诉我,指挥中是否有任何错误或对我的情况提出任何建议。

由于

2 个答案:

答案 0 :(得分: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条款,因为它没有任何标准。如果您需要,可以放置。

答案 1 :(得分:0)

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

import logging

logging.basicConfig()
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')