一条SQL语句,很简单
选出一个表中的第六到第十条记录,
有两个写法第一select top 5 * from table whre id not in (select top 5 id from table)
那么第二种呢。
------解决方案--------------------declare @cot int
declare @sql varchar(2000)
select @cot = count(1) from [table]
set @cot = @cot - 5
set @sql = 'select top 5 * from '
set @sql = @sql + ' ( select top ' + @cot + ' * from [table] desc ) a '
exec(@sql)
------解决方案--------------------WITH table AS
(SELECT *
ROW_NUMBER() OVER ()as RowNumber
FROM table)
SELECT *
FROM table
WHERE RowNumber between 50 and 60;
------解决方案--------------------declare @indextable table(id int identity(1,1),yourID int)
insert into @indextable(yourID) select fieldID from yourTable desc
select * from yourTable Y
inner join @indextable t on
Y.fieldID=t.yourID
where t.id> =6 and t.id <=10
------解决方案--------------------第二种写法:select top 5 from table where id in (select top 10 from table order by id )order by id desc
------解决方案--------------------sql2005是这样实现的.
SELECT *,
ROW_NUMBER() OVER () as RowNumber
FROM table
WHERE RowNumber between 6 and 10;