使用部分现有内容替换Access表中列的连接

时间:2016-02-18 12:57:25

标签: sql ms-access replace

我在Access表中有一个包含文本字符串的列,我希望只用该字符串的一部分替换内容。

我创建了一个不产生错误的查询,但是当它运行时,它只返回整个Novell Username列,而不是实际改变桌面上的竞赛。

UPDATE Novell SET [Novell Username] = REPLACE([Novell Username], [Novell Username], MID([Novell Username], INSTR([Novell Username], "."),  INSTR(INSTR([Novell Username], ".") + 1, [Novell Username], ".")))

例如,我有一个表格如下 -

  

Novell ID Novell DN Novell用户名
  1 .NameA.something.whetever .NameA.something.whetever
  1 .NameB.something.whetever .NameB.something.whetever
  1 .NameC.something.whetever .NameC.something.whetever

我需要它看起来像

  

Novell ID Novell DN Novell用户名
  1 .NameA.something.whetever NAMEA   1 .NameB.something.whetever NameB   1 .NameC.something.whetever NameC

如何修改我的查询以达到我想要的结果?

3 个答案:

答案 0 :(得分:2)

根据您的示例数据,您可以执行以下操作:

UPDATE Novell
    SET [Novell Username] = REPLACE(LEFT([Novell Username],
                                         INSTR(2, [Novell Username], ".")
                                        ), ".", "")

答案 1 :(得分:1)

尝试将此作为替换字符串:

mid([Novell Username],instr([Novell Username],".")+1, instr(2,[Novell Username], ".") -2)

它的作用:找到第一个"。",找到第二个"。"并复制其间的内容,不包括那些"。" s

这假设您的所有字段都以"。" s

开头

答案 2 :(得分:1)

有一个小帮手功能:

Public Function NovellUsername(ByVal NovellDN As String) As String
    NovellUsername = Split(NovellDN, ".")(1)
End Function

在您的查询中:

UPDATE Novell SET [Novell Username] = NovellUsername([Novell DN])