Hello ,小伙伴们,大家好,早上有小伙伴给小编留言,问如何SQL如何合并数据
也就是今天的猪脚
Union运算符可以把两个或者多个表结构相同的工作表合并起来
Union也是在工作中比较常见的一种方法
语法也很简单
Table1 Union [All] Table2
如下图所示

1表合并2表 返回合并后的结果3表
strSQL = "Select * From " & strSource & " Union All Select * From " & strSource1
Union All 将两个表合并到一个工作表中,且不会对这些做任何的更改,值得需要注意的是,两个表的列字段数目必须相同
例如,列数不相同的情况下

会返回一下错误信息

Union 与之前所写的连接比较相似,它们都是将多个表合并起来形成另一个表的方法,然而它们以不同的方法进行这些组合

在前面的语法解析中,Union [All] 中的All是可省略的
Union 是去重操作,既可以删除重复的行
Union All则是不需要去重,并且比Union需要计算的资源要少些,毕竟Union多了去重复的操作,必然产生更多的运算...
一般需要使用Union All的情况
知道有重复且想保留
知道不可能有重复
不在乎是否有重复
...
如下图所示

还是这个数据,一班和二班都有丁文的学生


使用Union All 两表的丁文被保留,而使用Union 丁文去重
如果是两表列数都不相等需要合并则添加Null As添加一列
strSQL = "Select 班级,姓名,Null As 分数 From " & strSource & " Union All Select * From " & strSource1

1表添加1列构造的值为缺失值Null的字段 使用Union All 合并2表
在上图中,可以发现两个表的表头都不相同,还是能返回结果,是因为Union运算符总是按第一个Select语句中字段为查询结果的字段
在来一个潜水在群里看到的例子
... ...
等练习的时候在做吧,睡觉
...
...
示例文件下载
链接:https://pan.baidu.com/s/1uIY8J8_LRmToNuSOVnL5lw
提取码:abcd
收工!
如果小伙伴有好的思路,可以在小编的公众号留言发给小编研究下
文章觉得有用,点个赞+在看,你的每一次点赞和转发就是小编原创的动力
关注公众号 ↓




