我在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
如何修改我的查询以达到我想要的结果?
答案 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])