比较期间使用的SQL替换

时间:2012-10-09 19:24:46

标签: sql sql-server-2008 replace

我目前运行此查询:

UPDATE table1 
SET column1 = table2.columnA  
FROM table2
WHERE column2 = table2.columnA
AND column3 = table2.columnC

是的,有一个重复的列,对不起。

当我将引用column2table2.columnA交叉时,有可能获得NULL,因为column2 包含/ table2.columnA 可能包含/

的位置

我不想更改table2.columnA

中的数据

据我了解,我可以将此查询运行到REPLACE字符。

SELECT REPLACE ([table2.columnA],'/','-')
FROM table2

这有必要不会对table2进行永久性更改,所以我想确保我做对了或看看是否有更好的方法。

现在我想结合两个查询但不确定如何。

UPDATE table1 
SET column1 = table2.columnA  
FROM table2
WHERE column2 = (SELECT REPLACE([table2.columnA],'/','-')table2.columnA)
FROM table2
AND column3 = table2.columnC

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这样的东西
UPDATE table1  
SET column1 = table2.columnA   
FROM table1 
    inner join table2 
    on table1.column2 = REPLACE([table2.columnA],'/','-')
    and table1.column3 = table2.columnC