替换SQL中的值(Microsoft Access)

替换SQL中的值(Microsoft Access),sql,ms-access,Sql,Ms Access,所以:我有一张小桌子,看起来像: PartNumber ReplacedNumber 408077-5102 408077-5102S 408077-0102 408077-5102 正如你在这里看到的,我想用替换的编号替换零件号,问题是如果a被b替换,b被c替换,那么这意味着a被c替换 有人知道怎么做吗 谢谢你的帮助 更新: 好的,以下是示例数据: id PartNumber ReplacedNumber 1 408077-5102 408077-5102S 2 408077-0

所以:我有一张小桌子,看起来像:

PartNumber  ReplacedNumber
408077-5102 408077-5102S
408077-0102 408077-5102
正如你在这里看到的,我想用替换的编号替换零件号,问题是如果a被b替换,b被c替换,那么这意味着a被c替换

有人知道怎么做吗

谢谢你的帮助

更新:

好的,以下是示例数据:

id PartNumber   ReplacedNumber
1  408077-5102  408077-5102S
2  408077-0102  408077-5102
如您所见,第2行中的值被替换(a被替换为b,在本例中,
408077-0102
408077-5102
替换),然后b被c替换(第1行中的
408077-5102
408077-5102S
替换)

这意味着a=c。我希望避免重复替换值。我希望现在更清楚了


谢谢

如果该表具有主id,您只需更新该表即可

update table set partnumber=replacednumber where id=id of the column you want to replace

id指主键

如果a被b替换,b被c替换,则表示a被c替换,可以这样写:

SELECT
  Replace.ID,
  Replace.PartNumber,
  IIF(Not IsNull([Replace_1].[ReplacedNumber]),
      [Replace_1].[ReplacedNumber],
      [Replace].[ReplacedNumber])
FROM
  Replace LEFT JOIN Replace AS Replace_1
    ON Replace.ReplacedNumber = Replace_1.PartNumber
(这是一个SELECT查询,但可以在更新查询中轻松转换)但这并不能解决c被d替换的情况,这(我想)也意味着a被d替换

我认为这里唯一的解决方案是使用递归函数:

Function searchReplaced(ReplacedNumber) as Variant
  Dim Look As Variant

  Look = DLookup("ReplacedNumber",
                 "Replace",
                 "PartNumber=""" & ReplacedNumber & """")

  If IsNull(Look) Then
    searchReplaced = ReplacedNumber
  Else
    searchReplaced = searchReplaced(Look)
  End If

End Function
然后您只需启动此更新查询:

UPDATE Replace
SET Replace.ReplacedNumber = searchReplace([Replace].[ReplacedNumber])

请把你的问题写得更具描述性。清楚地告诉你想要的结果。a、b和c是什么?它位于哪一列?您能提供样本数据和所需的结果集吗?好的,这是样本数据:id PartNumber ReplacedNumber 1 408077-5102 408077-5102S 2 408077-0102 408077-5102如您所见,第二行中的值已被替换(a替换为b,在本例中,408077-0102替换为408077-5102),然后b替换为c。(第1行中的408077-5102替换为408077-5102S。这意味着a=c。我希望避免重复替换值。我希望现在更清楚。谢谢你告诉我你的输出是什么need@KristiaProkopiou您如何决定用哪个值替换哪个值?如何将408077-5102转换为408077-5102S,以及如何转换408077-0102d到408077-5102中?标准是什么?请也粘贴您的表结构,这是示例数据:id PartNumber ReplacedNumber 1 408077-5102 408077-5102S 2 408077-0102 408077-5102正如您所看到的,第二行中的值被替换(a替换为b,在本例中,408077-0102替换为408077-5102),然后b替换为c。(第1行中的408077-5102替换为408077-5102S。这意味着a=c。我希望避免重复替换值。我希望现在更清楚。Thanks@KristiaProkopiou:请不要将代码示例或示例数据放入注释中-因为您无法格式化它,阅读它非常困难…相反:通过编辑它来更新您的问题o提供更多信息!谢谢。我很抱歉。我是新来的,我刚刚注册,所以请给我一些时间来学习如何使用该网站。感谢你的耐心,这看起来可以奏效。非常感谢,我将尝试这两种方法,然后再与你联系。