select top 10 * from table where id between 11 and 20 order by id

解决方案 »

  1.   

    楼上的如果行的同的话
    用 
    select * from table where id between 11 and 20 
    order by id好像就可以
      

  2.   

    use northwinddeclare @min int
    declare @max int
    set @min=11
    set @max=20create table #temp
    (
    [TempID] [int] IDENTITY (1, 1) NOT NULL ,
    [RowID] [int] NULL
    )INSERT #temp (RowID) SELECT OrderID FROM orders WHERE employeeID=3 ORDER BY RequiredDate DESCSELECT Orders.* FROM Orders INNER JOIN #temp ON Orders.OrderID=#Temp.RowID WHERE #Temp.TempID<@max AND #Temp.TempID>=@mindrop table #temp
      

  3.   

    哦。。应该是:#Temp.TempID<=@max
      

  4.   

    cteate table #temp     '创建临时表,表结构和原表相同insert into #temp 
    select top 20 * from 原表 order by id  '插入前20个数据
    delete #temp 
    from (SELECT TOP 10 * FROM #temp order by id) AS t1  '删除临时表的前10个数据
    where 原表.id = t1.id
      

  5.   

    create table #temp
    (
    [TempID] [int] IDENTITY (1, 1) NOT NULL ,
    原表中的列)
    insert into #temp (………) SELECT * FROM 原表select …… from #temp where [TempID]>=11 AND [TempID]<=20
      

  6.   

    楼上,,~~~
    你那个改动有问题吧??
    哪怕是往#temp里插入1000条记录也是很恐怖的。。~~~~
    而且
    Create Table #temp里要重复写那么多列的定义,
    insert into #temp 也写得那么烦,谁愿意那么费心啊?
    如果原表的结构改变了那不是更麻烦了。?
      

  7.   

    1.select top m * from t1 where id not in (select top n id from t1 order by id) order by id
    2.select * from (select top m * from (select top m+n * order by id) order by id desc) order by id建议第一种
      

  8.   

    楼上们的没明白楼主的话:
    想知道,纯sql语句的书写!谢谢!!
    纯呀
    不要取出后操作!!
    gz
      

  9.   

    USE northwindSET NOCOUNT ON
    DECLARE @min INT SET @min=101
    DECLARE @max INT SET @max=110
    declare @temp TABLE([TempID] [int] IDENTITY (1, 1),[RowID] [int])
    INSERT @temp (RowID)
    SELECT OrderID FROM orders WHERE employeeID=3 ORDER BY RequiredDate DESC
    SET NOCOUNT OFFSELECT Orders.*
    FROM @temp t
    INNER JOIN Orders ON Orders.OrderID=t.RowID 
    WHERE t.TempID<=@max AND t.TempID>=@min
      

  10.   

    select identity(int,1,1) as rownum ,* into #tmp from yourtable
    select * from #tmp where rownum >=10 and rownum <20
      

  11.   

    倒。。我这个WHERE和ORDER BY都只执行一次。
    在需要各种WHERE和各种ORDER BY的情况下,
    还有更好的么?
      

  12.   

    是不是用于自定义分页,如果用于分页可使用SQLDATAADAPTER.FILL()实现自定义想要取出的第几条到第几条记录。
      

  13.   

    select top 10 * from (select top 1 a from (select top 10 a from table)) t join table on table.a > t.a
    想做分頁吧﹐建議不用Sql
    直接用
    DataAdapter.Fill(數據集﹐10,10,表名)