数据库B拆成两块,记数据库B为 data_B.dta
use data_B, clear
preserve
drop id2
save part1
restore
drop id1
rename costs costs_2
save part2
再分别merge到主表 data_A.dta
use data_A, clear
merge 1:1 id1 using part1
drop if _m == 2
drop _m
merge 1:1 id2 using part2
drop if _m == 2
drop _m
replace costs = costs_2 if costs == .
*id1没匹配到的空值 costs用 id2匹配上的 costs_2 替换
这样应该就行了