oracle两张表数据匹配,Oracle-left join两表关联只取B表匹配到的第一条记录
背景:
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表匹配到的第一条记录相关推荐
- oracle两个表数据比较,oracle数据库两表数据比较
1 引言 在程序设计的过程中,往往会遇到两个记录集的比较.如华东电网PMS接口中实现传递一天中变更(新增.修改.删除)的数据.实现的方式有多种,如编程存储过程返回游标,在存储过程中对两批数据进行比较等 ...
- oracle分组查询取第一条数据,160804、oracle查询:取出每组中的第一条记录
oracle查询:取出每组中的第一条记录 按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info group b ...
- oracle如何删除重复数据第一条,oracle删除重复数据保留第一条记录
oracle删除重复数据保留第一条记录 1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 gr ...
- oracle如何删除重复数据保留第一条记录
oracle删除重复数据保留第一条记录 1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 g ...
- excel两张表格数据整合
今天跟大家分享一下excel两张表格数据整合 1.首先我们打开excel文件,然后点击如下图选项 2.点击[汇总拆分]选择[合并多表] 3.将[表头行数]设置为2 4.勾选[合并后,标注源工作表],并 ...
- mysql查询数据库第一条记录_SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)...
Sqlserver 获取每组中的第一条记录 在日常生活方面,我们经常需要记录一些操作,类似于日志的操作,最后的记录才是有效数据,而且可能它们属于不同的方面.功能下面,从数据库的术语来说,就是查找出每组 ...
- oracle sql取查询结果第一条,SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)...
Sqlserver 获取每组中的第一条记录 在日常生活方面,我们经常需要记录一些操作,类似于日志的操作,最后的记录才是有效数据,而且可能它们属于不同的方面.功能下面,从数据库的术语来说,就是查找出每组 ...
- oracle和sql server取第一条记录的区别以及rownum详解
我们知道学生可能有重名的情况,那么当重名的时候假设只需要取得重名结果集中的第一条记录. sql server:select top(1) num,Name from M_Student where n ...
- 160804、oracle查询:取出每组中的第一条记录
oracle查询:取出每组中的第一条记录 按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info group ...
最新文章
- Python帮你识破双11的套路
- B 站疯传!P8技术大佬分享了20个免费Java课程,白拿不谢!!
- 房产证是不是必须房贷还完才可以拿回来?
- 放弃 VSCode,再次选择使用十年之久的 Emacs
- ssm会员商城管理系统答辩PPT免费下载
- mongodb配置文件启动linux,Linux运维知识之Mongodb启动方法:设定参数启动;从设置文件启动...
- iOS开发之国际化(本地化)
- java计算机毕业设计商品货物信息管理系统源码+系统+数据库+lw文档+mybatis+运行部署
- 农历中的 闰月 与 公历中的 闰日
- 越狱Season 1-Season 1, Episode 3: Cell Test
- 关于MFi认证你所必须要知道的事情
- 第一个爬虫项目-爬取唯美小姐姐网站
- Altium Designer Summer 09绘制3D封装库
- 牵线搭桥!让用户更高效地完成表单填写
- ps命令 查看系统进程信息
- 类似京东淘宝寄售转拍系统源码-拍卖系统源码-竞拍系统网站源码
- 苦瓜红烧肉这么做,每次做连汤汁都不剩
- 2023十大网络安全认证,有任何一个都薪资过万,你有几个了?
- 第九届蓝桥杯 螺旋折线
- CSAPP第十一章 网络编程
热门文章
- C++ 打怪游戏 原创 小镇1.0--降生
- 100集华为HCIE安全培训视频教材整理 | 双机热备(九)
- 淘客群的终结 自媒体淘客时代该如何去做?
- python程序发布到阿里云云服务器_Python实现阿里云服务器里的文件上传与下载
- Docker部署OpenLDAP
- 乐视2 usb计算机连接,乐视手机怎么连接电脑?乐视手机正确连接电脑教程
- FMC子卡设计原理图:141-四路 250Msps 16bits AD FMC子卡 模拟信号、无线电、光电的采集场景
- TJA1050T CAN总线通信硬件原理
- java从入门到入土图_Java从入门到入土day08
- 超融合架构hci之路坦力nutanix之硬件规格及软件配置之一