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

表结构name,fl,id比如:fl=1,前两条,fl1=2,前两条……如何查询一个表中,各个分类的前面2条数据,用一条sql语句帮助_li,的答案比较接近了,但是我的分... 表结构 name,fl,id

比如:fl=1,前两条,fl1=2,前两条……

如何查询一个表中,各个分类的前面2条数据,用一条sql语句
帮助_li,的答案比较接近了,但是我的分类比较多,如果用union的话,查询语句很长,效率应该不是很好了!

biguoting,你好,游标怎么用呀,我没用过,能帮我找点资料吗?
展开
 我来答
帮助_li
2006-07-08 · TA获得超过2140个赞
知道大有可为答主
回答量:1288
采纳率:65%
帮助的人:692万
展开全部
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的前两条

//不知道我明不明白你说的意思,我感觉我理解可能有误
执念如此YJC
2018-09-04
知道答主
回答量:2
采纳率:0%
帮助的人:1668
展开全部
select * from 表名 where 分类名 = '' or 分类名 = '' order by 排序字段 asc limit 条数总和(貌似只能用来查不同分类的相同条数,比如都是两条都是三条)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abingpow
推荐于2016-11-17 · TA获得超过2206个赞
知道大有可为答主
回答量:2830
采纳率:0%
帮助的人:2277万
展开全部
如你所愿,一条语句完成
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]
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
biguoting
2006-07-08 · TA获得超过186个赞
知道小有建树答主
回答量:201
采纳率:0%
帮助的人:141万
展开全部
select top2 * from 表名 where 条件1
union select top2 * from 表名 where 条件2
union select top2 * from 表名 where 条件3

分类比较多的话考虑用存储过程(游标)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lc2007
2006-07-08
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
select top2 * from 表名 where 条件1 and 条件2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式