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语句,实现多表连接

相关推荐
ss27313 小时前
手写Spring第7弹:Spring IoC容器深度解析:XML配置的完整指南
java·前端·数据库
PFinal社区_南丞13 小时前
PostgreSQL-10个鲜为人知的强大功能
数据库·后端
misty youth13 小时前
配置openguass 教程(自存)
数据库·ubuntu·华为·openguass
瑞士卷@14 小时前
MyBatis入门到精通(Mybatis学习笔记)
java·数据库·后端·mybatis
白云偷星子14 小时前
MySQL笔记13
数据库·笔记·mysql
施嘉伟14 小时前
静默安装金仓数据库,到底有多简单?
数据库
Tapdata14 小时前
实时物化视图的新路径:从传统 Join 到跨源实时查询
数据库
optimistic_chen14 小时前
【Java EE进阶 --- SpringBoot】Mybatis - plus 操作数据库
数据库·spring boot·笔记·java-ee·mybatis·mybatis-plus
FJW02081415 小时前
关系型数据库大王Mysql——DDL语句操作示例
数据库·mysql
言之。15 小时前
Chroma 开源的 AI 应用搜索与检索数据库(即向量数据库)
数据库·人工智能·开源