5楼的答案看不懂,3楼的答案貌似有问题。当要将几张表连接在一起查询时,我们才会用where table1.主键=table2.外键
只有一张表的时候用 where where t.框号=框号 貌似还没见过。
我的答案是:
select 框位 from tablename as t where 槽位 in (select top 2 槽位 from t order by 槽位)group by 框位
愚见:
2楼的 select top 2 min(槽位),框号 form 表 group by 框号
top 2 min好象没有这种用法
3楼的答案正确,
select * from tablename as t where 槽位 in(select top 2 槽位 from t where t.框号=框号 order by 槽位)
但是,我不知道2个表都命名T会不会产生误解,所以整理如下:
select * from tb a where 槽位 in (select top 2 槽位 from tb b where a.框号=b.框号 order by 槽位)
ORACLE 实现的话可以用下面的语句:
SELECT *
FROM table_name t1
WHERE t1.槽位 IN (SELECT t2.槽位
FROM (SELECT * FROM table_name ORDER BY 1, 2) t2
WHERE t1.框号=t2.框号
AND ROWNUM <= 2)
ORDER BY 1, 2;