SQL Server 2012 UPDATE REPLACE包含来自另一个表的2列

时间:2015-11-05 22:39:51

标签: sql-server

我正在尝试使用REPLACE()函数使用另一个表(#PEOPLE)中的数据更新一个表(#TEMPTABLE)中的列。

#TEMPTABLE有一个名为“NameString”的列,它是一个带有用户名和ID的长字符串。

#PEOPLE有一列ID和IDnumber。

UPDATE #TEMPTABLE
SET NAMEString = REPLACE(NAMEString, a.[ID], a.[IDNumber]) FROM #PEOPLE a

我正在尝试使用来自#People表的IDnumbers替换NameString列中的所有ID。

1 个答案:

答案 0 :(得分:0)

你需要给它一个连接标准。例如:

update #TEMPTABLE
set NAMEString = replace(a.NAMEString, a.ID, b.IDNumber) 
from #TEMPTABLE a
left join #PEOPLE b
on a.id = b.ID

此外,请确保在使用IDNumber列时引用正确的表格 - 您的原始查询实际上并未使用包含IDNumber的表格,据我所知你的表格的描述。

请注意,我的示例假设ID中有#TempTable字段,或其他要加入的字段 - 否则,您可能需要先从NameString列中提取它。