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 ...
最新文章
- html5 游戏制作软件,制作h5小游戏的免费软件有哪些?
- SAP EWM - 物料主数据 - EWM系统包装视图属性
- 商务礼仪 细节决定成败
- python能和c语音交互吗_Python与C交互概述
- 干货 | 数万实例数百TB数据量,携程Redis治理演进之路
- [转载] 羽毛球——学打羽毛球 09 步法的基本概念
- CSDN转载别人文章的详细步骤
- CVPR 2017 《Deep Feature Flow for Video Recognition》论文笔记
- Linux学习之CentOS(二)--初识linux的一些常用命令
- Nginx安装及配置简介
- 添加日志_第五章springboot2.0添加aop日志实现记录请求地址
- 霍夫变换检测圆c 语言,c++ 霍夫变换检测直线
- 剑指offer:矩阵中的路径(递归回溯法DFS类似迷宫)
- pku1274 The Perfect Stall
- 如果secureCRT安装时位置改变,EVE-NG如何关联secureCRT
- 10个免费网络管理工具
- TIBCO Spotfire使用技巧:如何在Web网页中嵌入TIBCO Spotfire可视化视图
- 编写个人所得税计算程序
- ios 系统状态栏样式修改_iOS 导航栏颜色和状态栏颜色修改
- mac bookpro m1 笔记本关闭键盘屏幕 禁用键盘屏幕使用 键盘屏幕误触 Touch Bar禁用 禁用MacBook-Pro的触摸栏
热门文章
- 【雷达通信】基于matlab线性调频脉冲雷达仿真【含Matlab源码 2104期】
- 二值图像最小外接矩形(正)
- Unity3D之监听Hierachy、Project等视图结构变化的事件
- 记录一下川崎机器人实现FINS TCP 通讯
- InfiniBand网络简介
- 聊天室客户端和网页版的区别
- 955不加班公司名单,2021年6月版本
- VISIO 形状工具的位置
- ios沙箱软件_iOS应用软件沙盒sandbox相关知识(整理)
- Windows Server 2008 R2 配置AD(Active Directory)域控制器(图文教程)