数据表结构如下:
想要得到A、B两组的所有抽检比例为0的值,并且要分别得到A、B两组抽检比例是非0值的最少的两个
结果如下所示:
时间暂时不用考虑,筛选后的排序无所谓,得到的值正确就行
我现在我的写法是:
分别SELECT 出A组和B组抽检比例非0的最少两个,再SELECT为0的,中间通过union all连接,想知道有没有更好的方式(代码少)来实现
(SELECT * FROM 表T WHERE `检查组`="A" AND `抽检比例` is not null ORDER BY `抽检比例` LIMIT 2)
union all
(SELECT * FROM 表T WHERE `检查组`="B" AND `抽检比例` is not null ORDER BY `抽检比例` LIMIT 2)
union all
(SELECT * FROM 表T WHERE `抽检比例` is null ORDER BY `抽检比例`)