我有包含字段 id、val 的表 a 和具有字段 id、val 的相同表 b。
当我为行中的不同数据编写内部连接时
SELECT * FROM a left join b on a.id = b.id WHERE (a.id != b.id or a.val != b.val)
我想将此表行拆分为两行。帮我写一个查询来拆分这些数据并获得如下所示的输出表

帮助!
您可以通过使用交叉应用和表值构造函数执行逆透视来生成额外的行。
select c.id,
c.val
from dbo.a
inner join dbo.b
on a.id = b.id
cross apply (values(a.id, a.val),
(b.id, b.val)) as c(id, val)
where a.val <> b.val;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35687 次 |
| 最近记录: |