我在 SQL-Server 中有 2 个表:
第一个表是产品
ID NameEnglish NameFrench
1 Box of Banana NA
2 Product apple NA
3 Pallet of Bread NA
第二表翻译
NameEnglish NameFrench
Banana Banane
apple Pomme
Bread Pain
我想根据我的表格翻译在列 (Namefrench) 中使用以下内容更新第一个表格
ID NameEnglish NameFrench
1 Box of Banana Box of Banane
2 Product apple Product Pomme
3 Pallet of Bread Pallet of Pain
如何替换和更新我的列 NameFrench?
答案 0 :(得分:4)
试试这个:
UPDATE P
SET P.NameFrench= REPLACE(P.NameEnglish,T.NameEnglish,T.NameFrench)
FROM Product P
INNER JOIN Translation T ON P.NameEnglish LIKE '%' + T.NameEnglish + '%'
这里加入了 Product NameEnglish,其中包含 Translation NameEnglish。 还用于在 Product NameEnglish 列中将 Translation NameEnglish 替换为 NameFrench。
参考:
How to use column name as part of a LIKE statement in a WHERE clause of a JOIN
答案 1 :(得分:0)
另一种方式:
UPDATE t1 SET namefrench = REPLACE(t1.nameenglish, RIGHT(RTRIM(t1.NameEnglish), LEN(t2.NameEnglish)), t2.NameFrench)
FROM table1 t1
INNER JOIN table2 t2
ON RIGHT(RTRIM(t1.NameEnglish), LEN(t2.NameEnglish)) = t2.NameEnglish