今天执行一段sql的时候,发现报了一个错误“UNION的类型integer和varchar不匹配”。
重新整理了一下使用UNION的条件:
- 列数必须相同。因为UNION是将两个或多个查询的结果合并成一个结果集,所以每个查询返回的结果列数必须相同。
- 每个列的数据类型必须要匹配。这个就是我报错的原因。一个查询返回的是int,另一个是varchar,数据类型不兼容,就会报错。
- UNION执行的顺序是从左到右,然后再合并结果集。
- 每个Select语句中的列名可以不同,然后按照从左到右执行,使用第一个查询中的列名作为结果集的列名。
- 默认情况下,UNION操作会去除重复的行。