如何用SQL语句对比2个表的数据

nbxz_5201314 2016-07-27 11:52:50
有2个表 ,表一为A,表2为B
表1的名称等于表2的名称 ,表1的核对码等于表2的核对码
请问如何找出表1的核对码等于表2的核对码?但是表1的名称不等于等于表2的名称
...全文
2160 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
造物主在胃中 2016-07-27
  • 打赏
  • 举报
回复

select 
x,x,x,x
from 表1 t1
full join 表2 t2 on 表1.核对码=表2.核对码 and 表1.名称=表2.名称
where t1.核对码 is null or t2.核对码 is null
这样应该能满足你的需求,只是查询效率估计不怎么样
造物主在胃中 2016-07-27
  • 打赏
  • 举报
回复
引用 1 楼 u013189255 的回复:

select
T.*
from
(
select 
t.1*
row_number() over(partition by t.名称,t.核对码 order by (select 1)) as de
from
(
select  名称,核对码 from 表1
union all
select  名称,核对码 from 表2
)t1
)T
where T.de >1
诶不好意思,逻辑写错了,我重新写
造物主在胃中 2016-07-27
  • 打赏
  • 举报
回复

select
T.*
from
(
select 
t.1*
row_number() over(partition by t.名称,t.核对码 order by (select 1)) as de
from
(
select  名称,核对码 from 表1
union all
select  名称,核对码 from 表2
)t1
)T
where T.de >1

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧