各位兄弟姐妹,我打算把数据库里的数据导出到excel,但无奈实在数据太多,一张excel表装不下,就打算用语句把数据分开导出。但我的表里都没有可以用于排序的id,不想用ROWNUMBER,太难实现了。用select top 10 *时就可以取到前十条数据了。    但是剩下的数据怎么分段导出呢?
    本人不怎么懂数据库,请各位教教我,有什么语句分段查询,或者数据库分段备份啊,谢谢

解决方案 »

  1.   

    为何不用row_number()呢.select *
    from (select row_number() over(order by getdate()) 'rn',* 
          from [表名]) t
    where rn between [起始行号] and [结束行号]
      

  2.   

     同問為何不用row_number select top( 結束行) * from  
     Table_1 
     except 
      select top( 開始行 ) * from  
     Table_1
      

  3.   

    row_number() over(order by getdate() 最好用,为什么不用呢
      

  4.   

    如果是sql server 2005以后的版本,建议用row_number,这样可以简化sql语句:select *
    from 
    (
    select *,
           row_number() over(order by @@servername) as rownum
    from 表名
    )a
    where rownum between 1 and 10  -- rownum between 11 and 20
      

  5.   

    最傻瓜式的
    select top(10)* from 表 where id not in (select top(10)ID from 表)
      

  6.   

    你先还是告诉我们有多少数据吧?其实office2010, Excel 的最大行数高达104,8576如果某些导出的东东承受不了, 你可导出成csv格式, excel一样可以打开的。
      

  7.   

    双向排序就可以了,你觉得row_number不好用,是因为你还不熟而已,熟了你就爱不释手了