首页 > 解决方案 > 如何将一行拆分为多行 SQL Server?

问题描述

我想将 sql 表中的一行转换为其他表中的多行。例如:假设我有一个表“UserDetail”并且他有 2 个地址(家、办公室……),那么该表看起来像……

在此处输入图像描述

我希望结果在第二个表中,如图所示

标签: sqlsql-server

解决方案


你可以使用“union all”来做到这一点:

select * into newTable
from
(
select UserId, Address1Line as Address, Address1City as City, Address1State as State
from myTable
union all
select UserId, Address2Line as Address, Address2City as City, Address2State as State
from myTable
) tmp

如果您只使用 UNION 而不是 UNION ALL,您还将删除 Address1 和 Address2 相同的重复项。


推荐阅读