日期:2014-05-18  浏览次数:20372 次

一条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;