我们有两个表,id是主键
Old
{
id
name
school
...
version
}
New
{
id
name
school
...
version
}
Run Code Online (Sandbox Code Playgroud)
我想在两个表中找到相同的ID具有相同的键,但不同的其他列并忽略该版本.
Select * From [New] n Inner Join On [Old] o On n.id = o.id
Where n.name != o.name OR n.school!=o.school ....(Do all the columns without version)
Run Code Online (Sandbox Code Playgroud)
这是有效的,但实际上有很多列,我能用Except做吗?
SELECT * FROM [New] WHERE id IN (SELECT id FROM [New] EXCEPT (SELECT id FROM [Old]))
Run Code Online (Sandbox Code Playgroud)
这是除了版本,但这个没有考虑我们需要忽略版本列.
以下是解决方案的框架:
select <columnlist>
from new
where id in (select id from old)
except
select <columnlist>
from old
Run Code Online (Sandbox Code Playgroud)
要获得<columnlist>,您可以手动输入.或者,您可以从中查询information_schema.columns.或者,您可以进入SQL Server Management工作室并执行以下操作:
New)出现所有列.然后删除version你不想要的.
| 归档时间: |
|
| 查看次数: |
284 次 |
| 最近记录: |