SQL Server,使用Union合并2表数据

表结构介绍

  • A表:Id, Title, Type, Date
  • B表:Id, Name, Date

期望合并后的表结构为

合并表:RowId, DataId, Name, Date, Type

  • RowId为Guid类型,标识唯一的一行信息
  • DataId,对应原始表A或B中Id
  • Name,对应A表Title或B表Name
  • Date,A表或B表的Date
  • Type, A表的Type,B表使用‘B’填充

使用Union合并语句

Select Newid() as RowId, Id as DataId, Title as Name, Date, Type
    From A
Union All
Select Newid() as RowId, Id, Name, Date, 'B' From B

解释说明

  • Union语句要求合并的表的列数相同,且列的类型相似;
  • Newid()是SQL Server中自带的系统函数,用于生成GUID;
  • 默认情况下Union会合并相同的行,Union All则不合并。