首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较两个表中的列和PostgreSQL中的合并值

比较两个表中的列和PostgreSQL中的合并值
EN

Stack Overflow用户
提问于 2019-11-20 04:53:24
回答 1查看 49关注 0票数 0

我得到了两个表,它们共享一些列名和一些类似的行。我需要一个方法来比较行条目,并为一列中匹配的行插入从一个表到另一个表的值。描述我的问题的示例如下所示:

代码语言:javascript
复制
big table                    |small table
-------------------------    |---------------------------
customer |address|           | customer       |address |
------------------------ |   |------------------------------
John     |123 Road       |   |customer John   |123 Road
Jason    |234 Dr         |   |shopper Jack    |645 Pkway
Jack     |Null           |   |customer Jones  |789 Road
Jones    |Null           |

小表可视为大表的数据源,它们包含相同的列名。我已经尝试过join方法,但是这个方法不太适合。不同的命名约定造成了问题。在本例中,customer名称位于大表中,包含在小表中的customer名称中。在上面的示例中,我想要实现的是,shopper Jackcustomer Jones小表中的地址可以插入到大表中的JackJones地址中。我希望我的描述足够清楚。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-20 05:34:52

用Update...from定位大表客户在小表客户中。

代码语言:javascript
复制
 update big_table bt
     set address = sm.address
   from small_table sm
  where bt.address is null 
    and position(bt.customer in sm.customer) > 0;

但要非常谨慎,这不是一个好做法。将小型表客户分成2列会好得多。您还需要解决当两者都有客户的地址但它们是不同的时候会发生什么。还有多个同名的顾客。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58946934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档