简单但不完美的:select top 1 t.* from( select top 5 * from b )t order by id desc
SELECT TOP 5 * FROM Table1
--用游标也可以 --游标访问任意行数的数据 --测试环境 declare @menu table (url varchar(200)) insert into @menu select 'biz\PersonManage\PersonArchiveList.aspx?flag=preview' union all select 'biz\PersonManage\PersonArchiveList.aspx?flag=maintenance' union all select 'biz\PersonManage\PersonArchiveSearch.aspx'--游标 declare you scroll cursor for select * from @menu open you --select 游标结果行数=@@cursor_rows fetch absolute 1 from you --指定任意行记录均可! close you deallocate you --结果 biz\PersonManage\PersonArchiveList.aspx?flag=preview(所影响的行数为 1 行)
每个表 select count(*) from tablename
要不這樣試試,組合一個SQL declare @sql nvarchar(800) declare @n intset @sql='' set @n=5 set @sql='select top ' + convert(char(8), @n) + ' * from table order by 字段 desc 'set @sql='select top 1 * from ('+@sql+') a'exec (@sql)
use pubs godeclare @i int --想得到第几行 declare @str_sql nvarchar(200) set @i=5 --假设第五行 set @str_sql = 'select top 1 from authors a where a.au_id not in (select top ' +cast((@i-1) as nvarchar(5))+' au_id from authors b order by au_id)' exec sp_executesql @str_sql go
select top 5 * from b
)t
order by id desc
--游标访问任意行数的数据
--测试环境
declare @menu table (url varchar(200))
insert into @menu select 'biz\PersonManage\PersonArchiveList.aspx?flag=preview'
union all select 'biz\PersonManage\PersonArchiveList.aspx?flag=maintenance'
union all select 'biz\PersonManage\PersonArchiveSearch.aspx'--游标
declare you scroll cursor
for
select * from @menu
open you
--select 游标结果行数=@@cursor_rows
fetch absolute 1 from you --指定任意行记录均可!
close you
deallocate you
--结果
biz\PersonManage\PersonArchiveList.aspx?flag=preview(所影响的行数为 1 行)
select count(*) from tablename
declare @sql nvarchar(800)
declare @n intset @sql=''
set @n=5
set @sql='select top ' + convert(char(8), @n) + ' * from table order by 字段 desc 'set @sql='select top 1 * from ('+@sql+') a'exec (@sql)
godeclare @i int --想得到第几行
declare @str_sql nvarchar(200)
set @i=5 --假设第五行
set @str_sql = 'select top 1 from authors a where a.au_id not in
(select top ' +cast((@i-1) as nvarchar(5))+' au_id from authors b order by au_id)'
exec sp_executesql @str_sql
go