标签: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查询 字段不匹配
原文地址:http://viphyy.blog.51cto.com/6403455/1476326