在SQL 中top n*可以查出前N条记录,我现在想把N用表达式表示出来,可会报错 该怎么解决呢

来源:百度知道 编辑:UC知道 时间:2024/07/04 15:36:21
假设一个表名为student 有一个列ID表示成 select top (5-1)*5 ID from student 就是把N表示成(5-1)*5 会报错 该怎么解决呢?

TOP后面是不能跟表达式的,如果你必须在SQL中通过计算获得n值的话 可以像下面这么写

declare @n int , @i int
set @i=5
set @n=(@i-1)*@i
execute ('select top ' + @n +' * from table1')

该写法2000和2005都能用

在sql2000是不可以的
在sql2005中可以
语法如下
declare @a int
set @a=(5-1)*1
select top (@a) * from student

注意 top (@a)要加括号

你定一个变量,给变量赋值,然后用变量取代表达式就行了哦!
很久不写程序了,应该是
dim i=(5-1)*5
selety top i id 。。。。。。。
看看

5-1=4
4*5=20
你直接 ;select top 20 ID from student
不就得了.