大佬教程收集整理的这篇文章主要介绍了``在'OFFSET'附近的语法不正确'.modift sql comm 2012 to 2008,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如注释中所发现的,导致该错误的原因是@R_937_9674@ Server 2008不支持它。您可以尝试根据sql Server 2012更改查询。
像这样的东西:
SELECT column1
FROM (
SELECT column1, ROW_numbER() OVER (ORDER BY COLUMN_ID) AS x
FROM @R_607_11174@able
) AS tbl
WHERE tbl.x betweeN 20 AND 30
在您的代码中:-
SELECT * FROM
(SELECT ROW_numbER() OVER(ORDER BY q.qID) AS rownumber
FROM tblQuestion AS q
INNER JOIN tblUser AS u ON q.uID = u.uID
INNER JOIN tblQuestioncategory AS qcat ON q.qcatID = qcat.qcatID ) as somex
WHERE somex.rownumber betweeN 11 AND 20
问题是因为您尚未定义@page
。
试试这个(因为您还没有提到什么@page
。我将其视为某个常量,或者您可以声明它,然后为其设置值):-
declare @pagE int
set @page = 5 // You may set any value here.
SELECT q.qtitle, q.qDescription, q.qCreatedOn, u.uCode,
u.uFullname, qcat.qcattitle, q.qID, q.qStatus
FROM tblQuestion AS q
INNER JOIN tblUser AS u ON q.uID = u.uID
INNER JOIN tblQuestioncategory AS qcat ON q.qcatID = qcat.qcatID
WHERE (q.qStatus = 1)
ORDER BY q.qCreatedOn DESC
OFFSET (@page*10) ROWS
FETCH NEXT 10 ROWS ONLY
我为此列出了问题
SELECT q.qtitle,q.qDescription,q.qCreatedOn,u.uCode,u.uFullname,qcat.qcattitle,q.qId,q.qStatus
FROM tblQuestion AS q INNER JOIN tblUser AS u
ON q.uId = u.uId INNER JOIN tblQuestionCategory AS qcat
ON q.qcatId = qcat.qcatId
WHERE (q.qStatus = 1)
ORDER BY q.qCreatedOn DESC
OFFSET @page*10 ROWS FETCH NEXT 10 ROWS ONLY
但是我的服务器有问题,
Incorrect syntax near 'OFFSET'.
Invalid usage of the option NEXT in the FETCH statement.
如何修改SQL Server 2008的查询?
还有一个问题。如何编写用于列出页面的存储过程?这是我的完整代码http://codepaste.net/gq5n6c
答案:http://codepaste.net/jjrkqr
以上是大佬教程为你收集整理的``在'OFFSET'附近的语法不正确'.modift sql comm 2012 to 2008全部内容,希望文章能够帮你解决``在'OFFSET'附近的语法不正确'.modift sql comm 2012 to 2008所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。