我得到两个表共享一些列名和一些相似的行。我需要一种方法来比较行条目,并将一个表中的值插入到另一列中的匹配行中。描述我的问题的示例如下:
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 Jack
和customer Jones
的地址插入Jack
和{{ 1}}在大表中。
我希望我的描述足够清楚。谢谢。
答案 0 :(得分:0)
使用Update ...从大表客户的位置开始,在小表客户中。
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列会更好。您还需要解决两个都有客户地址但又不同的情况。和多个同名客户。