de5af0fdedee70dd1e192a0695548d55.png

慕慕0277861

没有工作,我没有掌握Oracle,但我似乎记得Oracle允许在IN子句中匹配多个列,这至少应该避免使用相关子查询的选项,这很少是一个好的理念。也许这样的事情(不记得列列表是否应该加括号):SELECT * FROM MyTableWHERE (User, Date) IN  ( SELECT User, MAX(Date) FROM MyTable GROUP BY User)编辑:刚尝试真实:SQL> create table MyTable (usr char(1), dt date);SQL> insert into mytable values ('A','01-JAN-2009');SQL> insert into mytable values ('B','01-JAN-2009');SQL> insert into mytable values ('A', '31-DEC-2008');SQL> insert into mytable values ('B', '31-DEC-2008');SQL> select usr, dt from mytable  2  where (usr, dt) in   3  ( select usr, max(dt) from mytable group by usr)  4  /U DT- ---------A 01-JAN-09B 01-JAN-09所以它有效,尽管其他地方提到的一些新东西可能更有效。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐