没怎么用过Oracle,以为差不多,这不就遇到一个坑,因为连表查询,表关系为一对多,要把连查出来的数据过滤为两条,也就是对b表数据进行分组或者说过滤吧,
1.首先尝试了group by,发现对单个字段是可以的,也就是select后面只能是单个字段,这个字段也是分组的字段,这样是有效的,否则无效;
2.尝试distinct,发现发现只能过滤某一个字段生效,多个无效,而一般实际开发情况,是整条数据都是需要的;
3.最后百度很久才找到关键字 row_number() OVER(PARTITION BY 使用子查询对重复数据按照123…排序,再条件需要为1的,直接仿照着写就好,需要使用聚合函数,就直接在外层的select后面写,替换掉查全部;
1 | SELECT |