首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

请帮忙,求一SQL查询语句!该如何处理

2012-02-02 
请帮忙,求一SQL查询语句!表里有a b c 三个类别的产品 ,产品数量有N多,各类别也各占了很多! 想请教,如何能

请帮忙,求一SQL查询语句!
'表里有a b c 三个类别的产品 ,产品数量有N多,各类别也各占了很多! 想请教,如何能把 a b c 这三个类别的产品,每个类别都只提取10条数据?

[解决办法]
如果类别确定,即语句中可以使用类别值来检测

select top 10 * from tb where class='a'
union
select top 10 * from tb where class='b'
union
select top 10 * from tb where class='c'

如果类别不定,即语句中不使用类别值来检测 (设id,是不重复的,可比较大小的列)

select id,name from tb a where id in(select top 10 id from tb where class=a.class order by id) --每类取id最小的10条
select id,name from tb a where id in(select top 10 id from tb where class=a.class order by id desc)--每类取id最大的10条
--或是
select id,name from tb a where 10>=(select count(1) from tb where class=a.class and id<a.id) --每类取id最小的10条
select id,name from tb a where 10>=(select count(1) from tb where class=a.class and id>a.id) --每类取id最大的10条

热点排行