提问人:Daniel Perez 提问时间:10/11/2023 更新时间:10/12/2023 访问量:43
如何替换MS Access SQL中字符串的最后一部分?
How do I replace the last part of a string in MS Access SQL?
问:
我在数据库的一个字段中得到了以下字符串:
- 随心所欲
- 无论经理什么
- 随心所欲
我需要将 MAN 一词更改为 MANUAL
我可以使用以下代码更新字符串,例如第 3 种情况:
SET field_Desc = REPLACE(field_Desc , ' MAN ',' MANUAL ')
但是由于REPLACE函数的MAN中的最后一个空格无法更新第一种情况,因此为了像第二种情况一样在不更改包含MAN的单词的情况下修复它,我尝试了以下代码:
SET field_Desc = REPLACE(field_Desc , 'MAN','MANUAL')
WHERE field_Desc LIKE '% MAN'
但这行不通,如果有人能指导我,我将不胜感激。
答:
2赞
Shahram Alemzadeh
10/11/2023
#1
这可以使用带有模式的正则表达式来完成。whole word
首先添加对 MicroSoft VBScript RegularExpressions 的引用,然后编写一个公共函数,如下所示:
Public Function RegexReplace( _
input_string As String, _
find_string As String, _
replace_string As String) As String
Dim regex As New RegExp
regex.IgnoreCase = True
regex.Global = True
regex.Multiline = True
regex.Pattern = "\b" + find_string + "\b"
RegexReplace = regex.Replace(input_string, replace_string)
End Function
用法:
SELECT field_Desc, RegexReplace(field_Desc , "MAN" , "MANUAL") as Replaced
FROM Table1
0赞
Gustav
10/12/2023
#2
首先换行空格,然后替换空格,最后删除空格:
SET field_Desc = TRIM(REPLACE(' ' & field_Desc & ' ', ' MAN ',' MANUAL '))
评论