当前位置: 代码迷 >> Sql Server >> sql2000分页有关问题
  详细解决方案

sql2000分页有关问题

热度:12   发布时间:2016-04-27 14:25:24.0
sql2000分页问题

SELECT TOP 5 *
FROM
 CrmCallinBase
WHERE
 (CallNr NOT IN (SELECT TOP ( 50* 2) CallNr FROM CrmCallinBase ORDER BY CallNr DESC))
ORDER BY
 CallNr DESC


执行报错:伺服器: 訊息 170,層級 15,狀態 1,行 7 行 7: '(' 附近的語法不正確。


------解决方案--------------------
2000的话不能直接用TOP+括号传参的方式
要用动态sql,或者你直接写100
------解决方案--------------------
拼接动态sql

exec (@sql)
------解决方案--------------------
只能轉為字符再執行
------解决方案--------------------
給你個例子參照


SQL code
DECLARE @sql NVARCHAR(4000)SET @sql='SELECT TOP '+RTRIM(5)+' *FROM CrmCallinBaseWHERE (CallNr NOT IN (SELECT TOP 'rtrim(50* 2)+' CallNr FROM CrmCallinBase ORDER BY CallNr DESC))ORDER BY CallNr DESC'  EXEC (@sql)
------解决方案--------------------
top里面不能这样 需要动态SQL执行。

转换为字符串格式的执行。
  相关解决方案