50分求一查询语句解决思路

50分求一查询语句test表IDTypename1狗吉娃娃2狗藏獒3  狗  哈斯其4  猫  波斯猫5  猫  白猫6  猫  黑猫7  

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 行)
*/