请教:SELECT TOP 10 ... 中,10是否可以用一个变量代替?

argewu 2003-08-27 10:21:30
如果我想动态设定从数据库中返回多少行的数据,能实现吗?如:
DECLARE @_PageSize INT
SET @_PageSize = 10
SELECT TOP @_PageSize CustomerID FROM Customers
这样的好像不能实现,报错。究竟有没有办法解决这个问题?有经验的高手请指点一下!谢谢!
...全文
34 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
argewu 2003-08-27
  • 打赏
  • 举报
回复
tj_dns(愉快的登山者):
我试过了,txlicenhe(不做技术高手)的方法是可以的,你说的方法我试了一下,好像不行,说是"cast附近语法错误"
愉快的登山者 2003-08-27
  • 打赏
  • 举报
回复
不可以。使用动态执行:
DECLARE @_PageSize INT
SET @_PageSize = 10
exec ('SELECT TOP '+cast(@_PageSize as char(4))+' CustomerID FROM Customers')
argewu 2003-08-27
  • 打赏
  • 举报
回复
多谢txlicenhe(不做技术高手),这样果然可以!谢谢!
txlicenhe 2003-08-27
  • 打赏
  • 举报
回复
DECLARE @_PageSize INT
SET @_PageSize = 10
exec ('SELECT TOP ' + cast(@_PageSize as varchar(10)) + ' CustomerID FROM Customers')

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧