Waynediaofan
Waynediaofan
采纳率33.3%
2018-12-18 15:40

SQL查询两张表的数据,优先查A表。没有就查B表?

怎么在两张表里查询存在的记录。例如A表有 id 和 name两个字段,B表也有id和name两个字段。怎么做到,先去查询A表id对应的name,如果A表的name为空 就去B表查id对应的name。B表是肯定有数据的,A表的name不一定有数据

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • victor_yang victor_yang 2年前

    select ID=case when a.ID is not null then a.ID else b.ID end,
    Name=case when a.ID is not null then a.Name else b.Name end
    from tbB b
    left join tbA a on b.ID=a.ID

    点赞 1 评论 复制链接分享
  • weixin_44155243 xiaomin609 3年前

    如果A:B之间为1:1的对应关系:select A.id,nvl(A.name,B.name) from A,B where A.id=B.id(+)
    如果A:B之间为1:n的对应关系:select A.id,(case when A.name is not null then A.name else (select B.name from B where A.id = B.id and rownum = 1) ) end as name from A

    点赞 评论 复制链接分享

相关推荐