我有两个表格如下所示:
表1:Test1
Create table Test1
(
name varchar(50)
);
插入:此表中有5百万条记录。
insert into Test1 values('a$xyz');
insert into Test1 values('xyz$a');
表2:测试2
create table Test2
(
pattern varchar(50)
);
插入:
insert into Test2 values('a$');
insert into Test2 values('$a');
现在我想更新表Test1。具体来说,我想通过替换表Test2的模式来更新表中的名称。
像:
update Test1
set name = replace(name,'a$','');
如何从Test2表中获取string_to_replace?据我所知,我们不能在REPLACE函数中使用SELECT。
答案 0 :(得分:0)
你可以毫无问题地做到这一点:
UPDATE test1
SET name = replace(name, pattern, '')
FROM test2
WHERE pattern = 'a$';
但这有点多余。假设你在表'test2'中有一些'id',那么它会变得更有用:
UPDATE test1
SET name = replace(name, pattern, '')
FROM test2
WHERE id = 17;