首页 > 解决方案 > SQL Server UPDATE 来自另一个表的列值的列值

问题描述

我有两张桌子:

T1

CODE  FULL_NAME

T2

CODE   FIRST_NAME   LAST_NAME

所有的列都是 type NVARCHAR

有些CODE单元格T1是空的,我需要从T2. 我需要使用FULL_NAME中的信息并在中T1搜索LAST_NAME和中的FIRST_NAMET2。这样的怎么写UPDATE

到目前为止我写的是:

UPDATE IMPORT_DATA.RDBS_DATA_STORAGE
SET child_iin = pd.iin
FROM IMPORT_DATA.RDBS_DATA_STORAGE
INNER JOIN nedb.PERSONAL_DATA pd ON child_iin LIKE 'N' + '%' + pd.LAST_NAME + '%' + ' ' + 'N' + '%' + 
pd.FIRST_NAME + '%'

哪里 LEN(child_iin) < 1;

但不成功。

编辑:

我不能只使用WHERE t1.FULL_NAME=t2.FIRST_NAME + ' ' + t2.LAST_NAME,因为我可以有这样的场景t1.FULL_NAME='Jorsh Arthur Weasley't1.FIRST_NAME= 'William't2.LAST_NAME= 'Weasley'

还。

我需要使用N,因为正如我所说的列的类型,NVARCHAR并且我在那里有非 ASCII 字母,例如:

SELECT * FROM T1 WHERE CODE = 'Неважно'什么都不返回,要解决这个问题,我必须添加NSELECT * FROM T1 WHERE CODE = N'Неважно'返回一行。

标签: sqlsql-serverselectsql-update

解决方案


你可以试试下面

UPDATE T1 SET T1.CODE = T2.Code 
From T1
Join T2 on t1.FULL_NAME= t2.FIRST_NAME + ' ' +t2.LAST_NAME

推荐阅读