SQL UNION 的用法中前后两个查询语句所含字段是否一定要相同?

如题所述

字段名称可以不同,字段数量、数据类型、顺序必须相同。
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
需要注意的是
1、UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
2、该命令连接的结果集中有重复的值不会被显示。
想忽略重复值,可以使用 union all。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-19
不用,列和字段类型要匹配不匹配的最好转化下
create table #a(a int,b int)
insert into #a values(1,2)
select a from #a union select b from #a
drop table #a
第2个回答  2011-08-19
列数和值类型要兼容追问

你好,
列数兼容有规定的吗?列名要一样?如果 A UNION B 是不是A的列数要>=B的列数?

追答

列的數量要相同
值要兼容,舉個例子

--會出錯,值不兼容
select 1 as ID,'a' as Name
union all
select 1 as ID,1 as Name

改為
select 1 as ID,'a' as Name
union all
select 1 as ID,'1' as Name

本回答被提问者采纳
第3个回答  2011-08-19
列数要相同才可以。
相似回答