mssql sqlserver union关键字写法注意事项


摘要:
union 关键字要求,进行组合的表,需拥有相同的列名,否则系统会产生相应的错误信息,

例:

   create table A(keyId int ,name varchar(20),nameC varchar(30))
create table B(keyIdB int,nameB varchar(20))
go

insert into A values(1,'A','c'),(2,'d','e')
insert into B values(3,'f'),(4,'g')
go

select * from A
union   
select * from B
 
go
drop table A
drop table B
 


消息 205,级别 16,状态 1,第 3 行
使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。

注意事项:
最佳的union的写法应该为固定列名,这样在表结构升级时,不会导致异常产生:

  select keyId,name,nameC from A
union   
select keyIdB,nameB,null from B