SAS-数据集SQL水平合并

一、SQL水平合并基本语法

sql的合并有两步,step1:进行笛卡尔乘积运算,第一个表的每一行合并第二个表的每一行,即表a有3行,表b有3行,则合并后3*3=9行。笛卡尔过程包含源数据的所有列,相同列名会合并。Step2:根据需要在第一步的基础上进行数据的筛选。

分类包括:

内合并(inner join)

外合并(outer join):左连接(left join)、右连接(right join)、全连接(full join)

二、内合并

方法1:from +where

where one.x=two.x

列名不需要相同,one.x=two.y,但数据类型需要相同。

from:最多连接32张表。

方法2:from+inner on

用"table.column"选择需要保留的变量。若第一张表是主表,需保留第一张表的所有变量,可用"one.*"。

可以在select中进行变量重命名。

可以在from中进行表的重命名,as可加可不加,更名后可在其他语句中进行使用。

三、外合并

3.1 左连接

3.2 右连接

3.3 全连接

3.4 merge与sql的区别

与merge进行配对的逻辑不同,merge先按照by进行排序,然后从上到下进行匹配,保留符合匹配规则。sql的结果与merge结果不一致。

3.5 Coalesce

Coalesce:合并,既包括one的,也包括two的x。与merge结果一致。

四、复杂的sql语句示例

4.1 在select中进行运算


4.2 添加标签

4.3 Select嵌套

类似if条件句的判断

4.4 多表连接,多条件判定

4.5 一个proc sql select语句,实现多表连接

相关推荐
雨辰AI1 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
长城20242 小时前
关于MySql的ONLY_FULL_GROUP_BY问题
数据库·mysql·聚合列
常常有2 小时前
MySQL 底层执行原理:输入SQL语句到两阶段提交
数据库·sql·mysql
Mr. zhihao2 小时前
深入解析redis基本数据结构
数据结构·数据库·redis
m0_748839492 小时前
利用天正暖通CAD快速掌握风管数量统计的方法
数据库
随身数智备忘录2 小时前
什么是设备管理体系?设备管理体系包含哪些核心模块?
网络·数据库·人工智能
海市公约3 小时前
MySQL更新语句执行全流程:从Buffer Pool修改到二阶段提交
数据库·mysql·binlog·innodb·undo log·二阶段提交·update执行原理
颂love4 小时前
MySQL的执行流程
android·数据库·mysql
海市公约4 小时前
一条SQL查询的完整旅程:MySQL执行流程深度解析
sql·mysql·数据库优化·执行计划·连接器·查询缓存·sql执行原理
程序leo源4 小时前
Qt窗口详解
开发语言·数据库·c++·qt·青少年编程·c#