如果此字符串出现在我的列中,则覆盖我的其他列

时间:2017-06-14 10:33:06

标签: sql sql-server

我正在处理这个问题。我们假设我们有2列(A列和B列)。在A列中我有一个参考编号,在B列中我有一个字符串。

在B列中,某些行将包含术语“共同加载”,并且在其旁边将具有与A列中的参考编号类似的参考编号(但不相同)。

然后我可以使用SQL Server中的函数将所有出现的参考号复制为“共同加载”(10%的数据)并将其“粘贴”到A列中不再有效的参考号?

正如您在图像中看到的那样,仍有一些信息被复制到新列中。我怎么能避免这个?

 select MM.MovementRef, ME.MovementReference, replace(MU.Number, 'co-load', '') as change, MU.Number as trailername 
 from dbo.MALExport AS MEME.MovementReference
    INNER JOIN dbo.movConLink AS MCL ON ME.ConsignmentReference = MCL.ConsignmentReference
    INNER JOIN dbo.cgtRoute AS CR ON RouteID = CMRRouteID
    INNER JOIN dbo.movMovement AS MM ON MM.MovementRef = 
    LEFT  JOIN dbo.movUnit AS MU ON MU.UnitID = MM.TrailerID 
    where MU.Number like '%co-load%'

enter image description here

1 个答案:

答案 0 :(得分:3)

如果我理解正确,您想要进行更新。正如您所描述的那样,您可以使用字符串操作,例如:

update t
    set a = replace(b, 'co-load', '')
    where b like '%co-load%';