如何通过与SQL Server中的其他列进行比较从一列中删除类似的文本

时间:2016-09-09 05:34:04

标签: sql sql-server

我有以下示例

addressid  23915031 
customerid 13154569
address1   FLAT NO 23 3Road Floor KRISH  BUILDING ANUSHKTI  
address2   GAR BARC COLONY Near SECTOR MARKET
address3   MANKHURoad MUMBAI
landmark   ANUOHAKTING  
zipcode    400094   
addresstype RESIDENCE ADDRESS
cityname   MUMBAI   
statedesc  MAHARASHTRA

在上面的示例中,我想通过与cityname字段的comapring从address3字段中删除Mumbai。如何在SQL Server中执行此操作。 请帮忙!

4 个答案:

答案 0 :(得分:0)

尝试使用以下脚本。

SELECT REPLACE (address3,cityname,'')
FROM Yourtable

如果您想更新地址3'列使用以下脚本。

UPDATE Yourtable
SET address3   =REPLACE (address3,cityname,'')

答案 1 :(得分:0)

使用替换 LTRIM RTRIM

替换:它会将您的出现词替换为新词

LTRIM:删除左侧空格

RTRIM:删除右侧空格

DECLARE @Address VARCHAR(100)='MANKHURoad MUMBAI',@City VARCHAR(50)='MUMBAI'
SELECT REPLACE(LTRIM(RTRIM(@Address)),LTRIM(RTRIM(@City)),'')

答案 2 :(得分:0)

您可以使用Replace Function。但是,请同时寻找任何额外的空间或大小写场景。

答案 3 :(得分:-1)

用它来解决所有问题:

UPDATE yourtable 
SET address3 = REPLACE(LTRIM(RTRIM(UPPER(address3))),LTRIM(RTRIM(UPPER(cityname))),'')