【问题标题】:partial string comparison in SQLSQL中的部分字符串比较
【发布时间】:2017-05-12 08:34:46
【问题描述】:

我不知道如何提问,如何从表 2 新模型更新表 1 中的模型列。我不知道这是否可以通过 SQL 来完成。如果不能,我会编写一些循环遍历列表的代码。

唯一的共同因素是 table2.model 可能存在于 tabl1.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

【问题讨论】:

标签: sql sql-server


【解决方案1】:

CHARINDEX 可以像这样搜索子字符串。

作为选择运行,验证,然后您就可以运行更新了!

SELECT *
-- UPDATE T1 SET MODEL=T2.[NEW MODEL]
FROM TABLE1 T1
JOIN TABLE2 T2 ON CHARINDEX(T2.MODEL,T1.DESCRIPTION)>0

【讨论】:

    【解决方案2】:

    我倾向于为此使用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 + ' %';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-14
      • 1970-01-01
      • 2018-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多