如何解决如何通过两列表的壁橱匹配更新表并使用sql在一个表中替换一个值?
| 我有两个具有以下值的表Table A Table B
PartNo PartNo
3AL9723AA 3AL9723AAA01
3AL7881BA 3AL7881BAA02
1AB5677FC 1AB5677FCD02
现在,我想比较这两个不超过9个字符的PartNo值,如果这9个字符匹配,则将表B中的PartNo值替换为表A中的PartNo,然后忽略或删除最后三个字符,
请任何人可以帮助我编写有关此问题的查询。
解决方法
在MySQL中:
UPDATE tableA a,tableB b
SET b.PartNo=a.PartNo
WHERE LEFT(a.PartNo,9) = LEFT(b.PartNo,9);
, 在MS SQL中:
-- Setup
declare @TableA table(PartNo varchar(20))
declare @TableB table(PartNo varchar(20))
insert @TableA
values
(\'3AL9723AA\'),(\'3AL7881BA\'),(\'1AB5677FC\')
insert @TableB
values
(\'3AL9723AAA01\'),(\'3AL7881BAA02\'),(\'1AB5677FCD02\')
-- Query
update b
set PartNo = a.PartNo
from @TableA a
join @TableB b on
left(a.PartNo,9) = left(b.PartNo,9)
-- Result check
select *
from @TableB
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。