【发布时间】:2017-12-30 04:33:39
【问题描述】:
我有两个包含 100 列的表,我想了解这两个表中哪个列的值发生了变化。我可以找到哪一行已更改,但我想更改哪一列而不是整行。
Table 1
name ID Dept Email EmpID Salary Gender
Rob 1 IT I@i.com 100 5000 M
Mary 2 HR M@m.com 20 6000 F
Jack 3 IT J@j.com 30 7000 M
Harry 4 Fin h@h.com 50 5000 M
Jay 5 Eng Null 60 5000 M
Ken 6 HR K@K.com 70 Null M
Table 2
name ID Dept Email EmpID Salary Gender
Rob 1 IT I@i.com 100 5000 M
Mary 2 HR M@m.com 20 6000 F
Jack 3 IT J@j.com 150 7000 M
Harry 4 Fin h@h.com 50 Null M
Jay 5 Eng Jy@jy.com 60 5000 M
Ken 6 HR K@K.com 70 6000 M
我们可以看到 Jay 的电子邮件存在,Jack 的 Emp ID 已更改,Harry 的薪水在表 2 中为空,并且为 Ken 添加了薪水。
预期输出(如果可能的话,因为我不想看到所有的行值,我只想看看哪个列值发生了变化,因为 ID 是唯一标识符,我想知道哪个 ID 做了列值变化)
ID columnvaluechanged
3 EmpID
4 Salary
5 Email
6 Salary
【问题讨论】:
-
如果多列值改变了怎么办?重复行?
-
是的,一个 ID 的多个列可能会发生变化,这只是一种情况,因为我只是想找出哪个列值发生了变化,这样我就可以查看那些列但不会有一个 ID 的任意多行,任何行的 ID 都不重复
标签: sql sql-server sql-server-2014