一、SQL水平合并基本语法

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

分类包括:
内合并(inner join)
外合并(outer join):左连接(left join)、右连接(right join)、全连接(full join)
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/0536f8795eda4756bb0aca81b2afdb2e.pn

二、内合并

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

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐