背景:

A表、B表两表关联,关联出来的结果里B表有不止一条,需求是只要B表结果中的某一条(按某字段排序)

经过百度,发现 row_number() over(partition by a order by b desc)函数可用(需要说明下,order by 必须有缺少会报错),以下是数据环境及结果。

创建数据环境

create table A(ANAME varchar(20));

insert into A values('alan');

insert into A values('Alee');

insert into A values('aspn');

create table B

(

BNo varchar(10),

BTell varchar(20),

Name varchar(20)

);

insert into B values('NO1','1366666','alan');

insert into B values('NO1','1388888','alan');

insert into B values('NO1','1399999','alan');

insert into B values('NO2','1333333','Alee');

insert into B values('NO3','1311111','aspn');

insert into B values('NO3','1322222','aspn');

直接关联查询的话,结果如下

需求是只要每个人的第一条记录(按BTELL排序)

select *

from a

left join (select *

from (select b. *,

(row_number()

over(partition by bno order by BTell desc)) px

from b) e

where px = 1) t

on a.aname = t.name;

查询结果如下

oracle两张表数据匹配,Oracle-left join两表关联只取B表匹配到的第一条记录相关推荐

  1. oracle两个表数据比较,oracle数据库两表数据比较

    1 引言 在程序设计的过程中,往往会遇到两个记录集的比较.如华东电网PMS接口中实现传递一天中变更(新增.修改.删除)的数据.实现的方式有多种,如编程存储过程返回游标,在存储过程中对两批数据进行比较等 ...

  2. oracle分组查询取第一条数据,160804、oracle查询:取出每组中的第一条记录

    oracle查询:取出每组中的第一条记录 按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info group b ...

  3. oracle如何删除重复数据第一条,oracle删除重复数据保留第一条记录

    oracle删除重复数据保留第一条记录 1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 gr ...

  4. oracle如何删除重复数据保留第一条记录

    oracle删除重复数据保留第一条记录 1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 g ...

  5. excel两张表格数据整合

    今天跟大家分享一下excel两张表格数据整合 1.首先我们打开excel文件,然后点击如下图选项 2.点击[汇总拆分]选择[合并多表] 3.将[表头行数]设置为2 4.勾选[合并后,标注源工作表],并 ...

  6. mysql查询数据库第一条记录_SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)...

    Sqlserver 获取每组中的第一条记录 在日常生活方面,我们经常需要记录一些操作,类似于日志的操作,最后的记录才是有效数据,而且可能它们属于不同的方面.功能下面,从数据库的术语来说,就是查找出每组 ...

  7. oracle sql取查询结果第一条,SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)...

    Sqlserver 获取每组中的第一条记录 在日常生活方面,我们经常需要记录一些操作,类似于日志的操作,最后的记录才是有效数据,而且可能它们属于不同的方面.功能下面,从数据库的术语来说,就是查找出每组 ...

  8. oracle和sql server取第一条记录的区别以及rownum详解

    我们知道学生可能有重名的情况,那么当重名的时候假设只需要取得重名结果集中的第一条记录. sql server:select top(1) num,Name from M_Student where n ...

  9. 160804、oracle查询:取出每组中的第一条记录

    oracle查询:取出每组中的第一条记录 按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info  group ...

最新文章

  1. Python帮你识破双11的套路
  2. B 站疯传!P8技术大佬分享了20个免费Java课程,白拿不谢!!
  3. 房产证是不是必须房贷还完才可以拿回来?
  4. 放弃 VSCode,再次选择使用十年之久的 Emacs
  5. ssm会员商城管理系统答辩PPT免费下载
  6. mongodb配置文件启动linux,Linux运维知识之Mongodb启动方法:设定参数启动;从设置文件启动...
  7. iOS开发之国际化(本地化)
  8. java计算机毕业设计商品货物信息管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  9. 农历中的 闰月 与 公历中的 闰日
  10. 越狱Season 1-Season 1, Episode 3: Cell Test
  11. 关于MFi认证你所必须要知道的事情
  12. 第一个爬虫项目-爬取唯美小姐姐网站
  13. Altium Designer Summer 09绘制3D封装库
  14. 牵线搭桥!让用户更高效地完成表单填写
  15. ps命令 查看系统进程信息
  16. 类似京东淘宝寄售转拍系统源码-拍卖系统源码-竞拍系统网站源码
  17. 苦瓜红烧肉这么做,每次做连汤汁都不剩
  18. 2023十大网络安全认证,有任何一个都薪资过万,你有几个了?
  19. 第九届蓝桥杯 螺旋折线
  20. CSAPP第十一章 网络编程

热门文章

  1. C++ 打怪游戏 原创 小镇1.0--降生
  2. 100集华为HCIE安全培训视频教材整理 | 双机热备(九)
  3. 淘客群的终结 自媒体淘客时代该如何去做?
  4. python程序发布到阿里云云服务器_Python实现阿里云服务器里的文件上传与下载
  5. Docker部署OpenLDAP
  6. 乐视2 usb计算机连接,乐视手机怎么连接电脑?乐视手机正确连接电脑教程
  7. FMC子卡设计原理图:141-四路 250Msps 16bits AD FMC子卡 模拟信号、无线电、光电的采集场景
  8. TJA1050T CAN总线通信硬件原理
  9. java从入门到入土图_Java从入门到入土day08
  10. 超融合架构hci之路坦力nutanix之硬件规格及软件配置之一