首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎样实现 select top n 语句中 n 的动态赋值呢?解决方案

2012-01-31 
怎样实现 select top n 语句中 n 的动态赋值呢?怎样实现 selecttopn语句中 n 的动态赋值,求教各位了.要把

怎样实现 select top n 语句中 n 的动态赋值呢?
怎样实现 select   top   n   语句中 n 的动态赋值,求教各位了.

要把这个n值传到存储过程中,再加入
select top n
语句中,而且不能用下面这种形式 来执行查询,要直接查询的

DECLARE   @sqlStr   nvarchar(400)
SET   @sqlStr   =   "   SELECT   TOP   "   +   CAST(@pageSize   AS     CHAR(10))     +   "   *   FROM   课程表 "
EXEC   sp_executesql   @sqlStr

这个办法我已经实现了,可公司现要求不用字符串,要直接查询,请问有没有别的办法实现了呢.我现在用下面的方法总是出错:

SELECT     TOP   @pageSize   *   FROM   课程表  



[解决办法]
declare @i int
set @i =10
set rowcount @i
select * from 课程表
set rowcount 0

[解决办法]

declare @pageSize int,@str varchar(100)

set @pageSize=100

set @str=cast(@pageSize as varchar(100))

exec ( 'SELECT TOP ' + @str + ' * FROM 课程表 ')
[解决办法]
不能吧,
我想你公司的意思是不是要放在服务器中得到SQL语句再在数据服务器运行?

楼上的大大们,LZ要的是:可公司现要求不用字符串,要直接查询
[解决办法]
LZ用2000还是2005,2005可以不用字符串直接实现
[解决办法]
sql 2005 可以直接实现

select top(1+2)
*
from syscolumns

热点排行