基本上,我正在寻找一种在MS Access中运行类似于FirstOF
的查询的方法,但是我不需要返回第一次出现,而是需要第二次出现。例如,在下表中,我想在item列中返回第二个唯一的匹配项:
- ID Item Color
- 1 Hat Red
- 2 Hat Orange
- 3 Hat Yellow
- 4 Hat Green
- 5 Hat Blue
- 6 Scarf Purple
- 7 Scarf Brown
- 8 Pants Black
- 9 Pants Grey
- 10 Pants White
我希望查询返回:
- ID Item Color
- 2 Hat Orange
- 7 Scarf Brown
- 10 Pants Grey
感谢任何帮助。感谢。
答案 0 :(得分:0)
这在MS-Access中有点痛苦。这可能在MS Access中有效:
select t.*
from t
where t.id = (select max(t2.id)
from (select top (2) t2.*
from t as t2
where t2.item = t.item
order by id
) as t2
);
否则,计数方法也有效:
select t.*
from t
where 2 = (select count(*)
from t t2
where t2.item = t.item and t2.id <= t.id
);
这在其他数据库中要容易得多。因此,如果您有机会使用其他数据库,则可能需要切换。