情况:
我有2个表,tblA,tblB。
tblA包含9000个产品信息==> SKU,UPC
tblB包含制造1500个产品Info ==> sku,UPC
问题是tblA上的UPC有:空白,损坏的UPC和良好的UPC。
我怎么能:
我希望在tblA上更新好的UPC,而不是仅仅将其视为查询。
谢谢大家!
答案 0 :(得分:0)
我创建了一些这样的样本数据(如果样本数据的设置不正确,请告诉我):
create table tblA
(
sku varchar(25),
upc varchar(25)
)
go
create table tblB
(
sku varchar(25),
upc varchar(25)
)
go
insert into tblA values ('sku1', null)
insert into tblB values ('sku1', 'correct upc #1!')
insert into tblA values ('sku2', 'CORRUPT UPC!')
insert into tblB values ('sku2', 'correct upc #2!')
insert into tblA values ('sku3', 'CORRUPT UPC WITH NO MATCH!')
然后我运行这些更新命令:
首先,关于你的观点#1:
update tblA set upc = tblB.upc
from tblA
inner join tblB on tblA.sku = tblB.sku and tblA.upc is null
然后为你的观点#2:
update tblA set upc = isnull(tblB.upc, '')
from tblA
left join tblB on tblA.sku = tblB.sku
where tblA.upc like 'CORRUPT%'
-- you'll need to specify the actual criteria that makes a upc corrupted,
-- and replace the "like 'CORRUPT%'" clause!
之后,这个查询:
select * from tblA
给你:
--sku upc
--sku1 correct upc #1!
--sku2 correct upc #2!
--sku3 <blank>
tblA中没有tblB中相应sku的任何(未损坏的)upc将保持不变。这会让你走上正轨吗?