首页 > 代码库 > 使用union all查询时字段不匹配解决办法

使用union all查询时字段不匹配解决办法

小问题,可能新手碰到也会被书上的定义限定思维,一时反应不过来。


定义:

UNION 或UNION ALL 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。


场景:

当两个select的结果集个别字段有差别时需要UNION 或UNION ALL 合并。


解决办法:

某个结果集少字段可以用空值或固定值代替,使用别名达到列名一致要求。


 如 要合并student 和teacher 的结果,而teacher木有name这个列


select        name , age from student
union all
select ‘无‘ as name, age from teacher


注意:

可能会有类型不匹配现象,这时只需要用cast()做类型转换就可以了。



使用union all查询时字段不匹配解决办法