SQL中怎么比较两个表中两列的数据值是否相同 然后把计较结果作为新列显示

H_nufei 2020-02-12 07:45:15
具体说明:A,B两个表都有‘name’列,A表匹配在B表中是否值相等,并将结果在A表中新增一列显示,大概如图



...全文
5655 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2020-02-13
  • 打赏
  • 举报
回复
SELECT A.name,
       CASE 
            WHEN B.name IS NULL THEN 0
            ELSE 1
       END AS [更新列]
FROM   A
       LEFT JOIN B
            ON  A.name = B.name
  • 打赏
  • 举报
回复
你说的应该是显示A表中哪些人在B表存在,新增一列1表示存在,0表示不存在吧?其实用left join 就可以解决

select A.name, ISNULL(B1.FExists,0)
from A left join (select name,1 AS FExists from B) B1 ON A.name = B1.name

belsai 2020-02-12
  • 打赏
  • 举报
回复
select name,case n when 1 then 0 else 1 end as upd from
(select name,sum(n) as n from
(select name,1 as n from a_table
union all
select name,1 as n from b_table) t
group by name) t

22,298

社区成员

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

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