SQL中的部分字符串比较

SQL中的部分字符串比较,sql,sql-server,Sql,Sql Server,我不知道该怎么问这个问题,我该如何从表2中的新模型更新表1中的模型列。我不知道这是否可以通过SQL实现。如果不能,我将编写一些代码来循环遍历列表 唯一的共同因素是表2。模型可能存在于表1.description中的某个地方 表1: Description Model ------------------------------------------------ M114-1 vehicle description vehicle M114-2

我不知道该怎么问这个问题,我该如何从表2中的新模型更新表1中的模型列。我不知道这是否可以通过SQL实现。如果不能,我将编写一些代码来循环遍历列表

唯一的共同因素是表2。模型可能存在于表1.description中的某个地方

表1:

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 + ' %';

谢谢你的帮助。