50分求一查询语句
test表 
 ID      Type      name 
 1            狗            吉娃娃 
 2            狗            藏獒 
 3  狗  哈斯其 
 4  猫  波斯猫 
 5  猫  白猫 
 6  猫  黑猫 
 7  兔  黄兔 
 8  兔  白兔 
 9  兔  黑兔 
 有张类似的表,其中类型列不止这些品种,我现在想显示出每个品种里的两种,请问SQL语句应该怎么写,谢谢
------解决方案--------------------select * from 表 a where id in (select top 2 id from 表 where type=a.type  order by id )
------解决方案--------------------Select * from 表 as a where name in  
 (Select top 2 name from 表 where type=a.type) 
------解决方案--------------------  Select * From TEST A  
 Where (Select Count(ID) From TEST Where Type = A.Type And ID  < A.ID)  < 2   
 Or   
 Select * From TEST A  
 Where (Select Count(ID) From TEST Where Type = A.Type And ID >  A.ID)  < 2
------解决方案--------------------if object_id( 'pubs..tb ') is not null 
    drop table tb 
 go   
 create table tb(ID int,Type varchar(10),name varchar(10)) 
 insert into tb(ID,Type,name) values(1, '狗 ', '吉娃娃 ') 
 insert into tb(ID,Type,name) values(2, '狗 ', '藏獒 ') 
 insert into tb(ID,Type,name) values(3, '狗 ', '哈斯其 ') 
 insert into tb(ID,Type,name) values(4, '猫 ', '波斯猫 ') 
 insert into tb(ID,Type,name) values(5, '猫 ', '白猫 ') 
 insert into tb(ID,Type,name) values(6, '猫 ', '黑猫 ') 
 insert into tb(ID,Type,name) values(7, '兔 ', '黄兔 ') 
 insert into tb(ID,Type,name) values(8, '兔 ', '白兔 ') 
 insert into tb(ID,Type,name) values(9, '兔 ', '黑兔 ')   
 select * from tb t 
 where name in  
 ( 
 select top 2 name from tb where type=t.type order by name 
 )   
 drop table tb 
 /* 
 ID          Type       name        
 ----------- ---------- ----------  
 2           狗          藏獒 
 3           狗          哈斯其 
 4           猫          波斯猫 
 5           猫          白猫 
 8           兔          白兔 
 9           兔          黑兔   
 (所影响的行数为 6 行) 
 */