在SQL server中,如何从数据不匹配的源查询(目标查询除外)中获取列名
我必须找出源查询中除目标查询外具有不同数据的列的名称 当前,当我执行源查询(目标查询除外)时,即使只有一个列值不同,它也会返回整行。我的要求是找出这些有数据差异的列的名称,并将它们放入一个单独的表中 例如,如果我有一个如下表:在SQL server中,如何从数据不匹配的源查询(目标查询除外)中获取列名,sql,sql-server,cursor,intersect,except,Sql,Sql Server,Cursor,Intersect,Except,我必须找出源查询中除目标查询外具有不同数据的列的名称 当前,当我执行源查询(目标查询除外)时,即使只有一个列值不同,它也会返回整行。我的要求是找出这些有数据差异的列的名称,并将它们放入一个单独的表中 例如,如果我有一个如下表: Select * from A; Col1 Col2 Col3 Col4 1 A India Delhi 2 A US Newyork 当我询问: Select * from A where C
Select * from A;
Col1 Col2 Col3 Col4
1 A India Delhi
2 A US Newyork
当我询问:
Select * from A where Col1=1
except
select * from A where Col1=2
它将显示:
Col1 Col2 Col3 Col4
1 A India Delhi
但是,我需要将Col1键字段值和Col3、Col4名称列名填充到一个新表中,在执行except查询时发现它们不相同。我认为您的方法存在概念性缺陷。 假设你的桌子是
Col1 Col2
---- ----
A A
B B
C C
Col1 Col2
---- ----
A A
B C
C B
如果使用selectexpect,您会很高兴地发现第一个元组没有改变。在那之后,问题是你没有办法去处理剩下的行。B-B匹配的B-C或C-B或C-C是否已更新,或B-B和C-C是否已删除,其他是否为新行
你必须依靠任何种类的钥匙。假设您这样做了,剩下的就是传统的无聊SQL