在数据处理中,我们经常需要将相邻的两条记录合并在一起,从而形成一个包含更多信息的单一条记录。在 SQL 中,可以利用 UNION ALL 操作符实现相邻两条记录合并。
语法
sql
SELECT * FROM table1
UNION ALL
SELECT * FROM table2;
**注:** UNION ALL 操作符会合并所有记录,而忽略重复值。
实例
假设我们有两个表, table1 和 table2 ,其中包含以下数据:
table1:
| id | name | age |
| --- | ---- | --- |
| 1 | John | 20 |
| 2 | Mary | 25 |
table2:
| id | city | country |
| --- | ---- | ------- |
| 1 | London | UK |
| 2 | Paris | France |
要将这两个表中相邻的两条记录合并在一起,我们可以使用以下查询:
sql
SELECT * FROM table1
UNION ALL
SELECT * FROM table2;
查询结果如下:
| id | name | age | city | country |
| --- | ---- | --- | ---- | ------- |
| 1 | John | 20 | NULL | NULL |
| 2 | Mary | 25 | NULL | NULL |
| 1 | NULL | NULL | London | UK |
| 2 | NULL | NULL | Paris | France |
可以看到,结果合并了两张表中的数据,相邻的两条记录被合并为一条。
注意事项
* UNION ALL 操作符仅合并两张表中的数据,不会执行去重。
* 确保合并的列具有相同的名称和数据类型。
* 如果合并的列包含空值,可以使用 COALESCE() 函数处理空值。