sql - SQL Server UPDATE 来自另一个表的列值的列值
问题描述
我有两张桌子:
T1:
CODE FULL_NAME
和T2:
CODE FIRST_NAME LAST_NAME
所有的列都是 type NVARCHAR
。
有些CODE
单元格T1
是空的,我需要从T2
. 我需要使用FULL_NAME
中的信息并在中T1
搜索LAST_NAME
和中的FIRST_NAME
列T2
。这样的怎么写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 = 'Неважно'
什么都不返回,要解决这个问题,我必须添加N
:SELECT * FROM T1 WHERE CODE = N'Неважно'
返回一行。
解决方案
你可以试试下面
UPDATE T1 SET T1.CODE = T2.Code
From T1
Join T2 on t1.FULL_NAME= t2.FIRST_NAME + ' ' +t2.LAST_NAME
推荐阅读
- javascript - FCM 不发送 webpush 通知
- c++ - 未能尝试定义 Boost::mp11::find_if 谓词
- ios - How to know what type is the data sent?
- javascript - React Dropdown Selection - 基于箭头按钮单击的增量或减量
- tensorflow - Choose between Keras and TensorFlow for a beginner?
- java - 在主线程上使用后台线程传递给事件监听器的参数
- nuget - 项目的当前包源中没有可用的包更新
- javascript - 当我在 javascript 中调用 bit.ly 时获取 MISSING_ARG_ACCESS_TOKEN
- json - 如何使用 JSON 响应中的键名读取名称值对
- javascript - 如何在Javascript中将字符串替换存储为对象?