如何查询一个表中,各个分类的前面2条数据,用一条sql语句

2024年12月02日 20:30
有5个网友回答
网友(1):

select top 2 * from 表名 where f1=1;//这求出fl=1的前两条
select top 2 * from 表名 where f1=2//这求出fl=2的前两条
select top 2 * from 表名 where f1=1 union select top 2 * from 表名 where f1=2//求出fl=1的前两条并上fl=2的前两条

//不知道我明不明白你说的意思,我感觉我理解可能有误

网友(2):

select * from 表名 where 分类名 = '' or 分类名 = '' order by 排序字段 asc limit 条数总和(貌似只能用来查不同分类的相同条数,比如都是两条都是三条)

网友(3):

如你所愿,一条语句完成
select [name],[fl],[id] from t2 where [id] in ((select min([id])[id] from t2 group by [fl])union(select min([id])[id] from t2 where [id] not in (select min([id]) from t2 group by [fl]) group by [fl]))order by [fl],[id]

网友(4):

select top2 * from 表名 where 条件1
union select top2 * from 表名 where 条件2
union select top2 * from 表名 where 条件3

分类比较多的话考虑用存储过程(游标)

网友(5):

select top2 * from 表名 where 条件1 and 条件2