SQL中的部分字符串比较
我不知道该怎么问这个问题,我该如何从表2中的新模型更新表1中的模型列。我不知道这是否可以通过SQL实现。如果不能,我将编写一些代码来循环遍历列表 唯一的共同因素是表2。模型可能存在于表1.description中的某个地方 表1:SQL中的部分字符串比较,sql,sql-server,Sql,Sql Server,我不知道该怎么问这个问题,我该如何从表2中的新模型更新表1中的模型列。我不知道这是否可以通过SQL实现。如果不能,我将编写一些代码来循环遍历列表 唯一的共同因素是表2。模型可能存在于表1.description中的某个地方 表1: Description Model ------------------------------------------------ M114-1 vehicle description vehicle M114-2
Description Model
------------------------------------------------
M114-1 vehicle description
vehicle M114-2 description
track vehicle M116-3 description
troop M117 command vehicle
表2
Model New Model
------------------------------
M114-1 M11412
M114-2 m11412
M114-3 m11412
M116-1 m11611
CHARINDEX可以像这样搜索子字符串
以select、validate和FORM模式运行,您可以运行更新
SELECT *
-- UPDATE T1 SET MODEL=T2.[NEW MODEL]
FROM TABLE1 T1
JOIN TABLE2 T2 ON CHARINDEX(T2.MODEL,T1.DESCRIPTION)>0
为此,我倾向于使用like:
update t1
set model = t2.newmodel
from t1 join
t2
on t1.description like '%' + t2.model + '%';
为了安全起见,您可能希望坚持说明中的模型名称由空格包围,或者在字符串的开头或结尾:
update t1
set model = t2.newmodel
from t1 join
t2
on ' ' + t1.description + ' ' like '% ' + t2.model + ' %';
谢谢你的帮助。