select  * from  a, b where a.serial=b.item_id and  b.order_id in (select top 1 left(serial,13) from a 
where flag=0 )
大家好,请问如果我想在上面SQL中,按b.order_id 等于select top 1 left(serial,13) from a where flag=0 的顺序,取出100条,要怎样写才好?  也就是:select top 100 *......的形式

解决方案 »

  1.   

    top 1取1条..top 100不就是取100条?
      

  2.   

    这样不行,可能是我描述不清吧,现我再补充下:
      a:                                 b:
       serial                          item_id                   order_id
       20080102042352                  20080102042352            2008010204235
       20080102042353                  20080102042353            2008010204235
       20080102042354                  20080102042354            2008010204235
       20080102042346                  20080102042346            2008010204234   
       20080102042348                  20080102042348            2008010204234 如在上面数据中:我想取出,第一条记录结果为  
       20080102042352                  20080102042352            2008010204235
       20080102042353                  20080102042353            2008010204235
       20080102042354                  20080102042354            2008010204235
    第二条记录结果为:
       
       20080102042346                  20080102042346            2008010204234   
       20080102042348                  20080102042348            2008010204234 
      

  3.   

    select top 100 * from  a, b where a.serial=b.item_id and  b.order_id in (select  left(serial,13) from a  
    where flag=0 ) 
      

  4.   

    也就是还想按b.order_id 分组
      

  5.   


    要是再想按b.order_id相同的,一起取出来呢?
      

  6.   

    select  * 
    from  b 
    where order_id in (select top 1 left(serial,13) from a