现有表结构:z_id(标识种子),z_name,z_address,z_inserttime(默认值getdate())    现在想取出其中第11到20条记录,且要满足z_inserttime按降序排列的条件,应该如何写SQL或存储过程。
    
    希望各位不吝赐教,先谢了

解决方案 »

  1.   

    --这样不行?
    Select * from table1 where z_id between 11 and 20 order by z_inserttime desc
      

  2.   

    --try
    select top 10 * from tb a where not exists(select top 10 * from tb where id=a.id order by z_inserttime) order by z_inserttime
      

  3.   

    同意  wgsasd311(自强不息)
      

  4.   

    --try
    select top 10 * from tb a where z_id not in(select top 10 z_id from tb order by z_inserttime) order by z_inserttime
      

  5.   

    Select * From (Select TOP 10 * From TableName Where ID Not In (Select TOP 10 z_id From TableName Order By ID) Order By ID) A Order By z_inserttime Desc
      

  6.   

    Select * From (Select TOP 10 * From TableName Where z_id Not In (Select TOP 10 z_id From TableName Order By z_id) Order By z_id) A Order By z_inserttime DescOrSelect * From (Select TOP 10 * From (Select TOP 20 z_id From TableName Order By z_id) A Order By z_id Desc) B Order By z_inserttime Desc
      

  7.   

    wgsasd311(自强不息) ( ) 信誉:100  2006-06-15 10:06:00  得分: 0  
     
     
       --try
    select top 10 * from tb a where z_id not in(select top 10 z_id from tb order by z_inserttime) order by z_inserttime  
     
    -------------------------
    這個語句有問題,ID的排序不一定和z_inserttime的排序一致
      

  8.   

    --如是降序加desc即可:
    select top 10 * from tb a where z_id not in(select top 10 z_id from tb order by z_inserttime desc) order by z_inserttime desc
    --or
    select top 10 * from tb a where not exists(select top 10 * from tb where z_id=a.z_id order by z_inserttime desc) order by z_inserttime desc
      

  9.   

    paoluo(一天到晚游泳的鱼) ( ) 信誉:100  2006-06-15 10:10:00  得分: 0  
     
     
       wgsasd311(自强不息) ( ) 信誉:100  2006-06-15 10:06:00  得分: 0  
     
     
       --try
    select top 10 * from tb a where z_id not in(select top 10 z_id from tb order by z_inserttime) order by z_inserttime  
     
    -------------------------
    這個語句有問題,ID的排序不一定和z_inserttime的排序一致
      
     
    -----------------
    我里面嵌套语句也排序了
      

  10.   

    解答思路:
    1、查询处你的前20条记录
    2、去掉前10条的记录,所以只是显示10条记录select top 10 * from z_inserttime 
    --显示的记录不属于前10
    where z_id not in (select top 10 z_id from z_inserttime)
      

  11.   

    不过从执行效率上来讲,用exists关键字比in关键字要好
      

  12.   

    你這樣是按z_inserttime排序的,而不是按z_id 排序的,得到的就很大可能不是“第11到20条记录”
      

  13.   

    YYKXQ(异域狂想曲) ( ) 信誉:100  2006-06-15 10:17:00  得分: 0  
     
     
       不过从执行效率上来讲,用exists关键字比in关键字要好
      
     
    -----------------------
    不是絕對的
      

  14.   

    paoluo(一天到晚游泳的鱼) ( ) 信誉:100  2006-06-15 10:17:00  得分: 0  
     
     
       你這樣是按z_inserttime排序的,而不是按z_id 排序的,得到的就很大可能不是“第11到20条记录”
      
     
    ============
    同意你的看法,我看错意思了,因为是按时间排序取第11-20之间的记录,楼主是要取按ID排序的第11-20条的记录取出来,然后再按时间排序。:)