首页 > 解决方案 > 从另一列中删除匹配字符串

问题描述

我在 SQL Server 2014 中工作。我在名为Gallery Nameand的表中有 2 列Address。以下是该表中的示例数据。

Gallery Name           Address
--------------------------------------------------------------
Boltelang              Boltelang street 12, Paris
BERG Contemporary      BERG Contemporary gorge ave, New York

像这样,我总共有 207 条记录。现在的问题是列的数据Gallery Name在我想从地址列中删除的地址列中重复。所以它应该是这样的

Gallery Name          Adress
--------------------------------------------
Bltelang              street 12, Paris
BERG Contemporary     gorge ave, New York

我不知道我可以在 SQL Server 中使用哪个函数来实现这一点

标签: sqlsql-serverstringtsqlpattern-matching

解决方案


我会去:

update t
    set address = stuff(address, 1, len(gallery_name) + 1, '')
    where address like gallery_name + ' %';

这些涵盖了您问题中的示例,其中画廊名称位于地址的开头,后跟一个空格。在做出这样的改变时,我非常保守。如果您有其他模式,那么您可以运行另一个更新来修复这些问题。

您要小心使用REPLACE(),以防地址重复画廊名称:

New York     New York 10 New York Ave

推荐阅读