求解一个排列问题~
如果有两个表: 
 tabel1: 
 id   userid   companyname   address   classid   ischecked      registerdate 
 1            101            东莞易全         东莞市         2                        true               2007-1-2 
 2            103            重庆建宏         重庆市         3                        true               2007-1-3 
 3            102            其它公司         其它城市      2                     true               2007-1-1 
 .................. 
 table2: 
 id   userid      wareid         productname      price         mark 
 1            101            2                        网卡                           100            说明 
 2            101            3                        路由器                     200            说明 
 2            103            4                        交换机                     200            说明 
 4            102            3                        集线器                     199            说明 
 ........................   
 现在我的问题是先把两个表select...inner   join,然后让相同的公司产品只显示一条排列在最前面(要查询完把有公司的产品之后),其它的产品再显示(要显示完所有公司的产品)~   
 我现在只能实现让相同公司的产品用聚合只显示一条排列最前面,而不能实现让相同公司的其它产品显示在其后面~ 
 请问各位老大这个sql怎么实现? 
------解决方案----------------------改了一下, 你看看吧   
 create table T1(id int, userid varchar(10), companyname varchar(10), address varchar(10), classid int, ischecked varchar(10), registerdate datetime) 
 insert T1 select 1,     '101 ',     '东莞易全 ',    '东莞市 ',   2,         'true ',      '2007-1-2 ' 
 union all select 2,     '103 ',     '重庆建宏 ',    '重庆市 ',   3,         'true ',      '2007-1-3 ' 
 union all select 3,     '102 ',     '其它公司 ',    '其它城市 ',  2,        'true ',      '2007-1-1 '   
 create table T2(id int, userid varchar(10), wareid int, productname varchar(10), price int, mark varchar(10)) 
 insert T2 select 1,     '101 ',    2,         '网卡 ',         100,     '说明 ' 
 union all select 2,     '101 ',    3,         '路由器 ',       200,     '说明 ' 
 union all select 3,     '103 ',    4,         '交换机 ',       200,     '说明 ' 
 union all select 4,     '102 ',    3,         '集线器 ',       199,     '说明 '   
 select * 
 from T1 as tmpA 
 inner join T2 as tmpB on tmpA.userid=tmpB.userid 
 order by  
 ( 
 case when  
 not exists (select 1 from T2 where userid=tmpB.userid and id <tmpB.id) then -1  
 else tmpB.id 
 end 
 )