【发布时间】:2022-01-22 14:17:50
【问题描述】:
我有一个字符串,我想替换一组数字。
该字符串包含一组数字(和几个字母)。 'A12 456 1 65 7944'
我想用“xxx”替换3个数字的组,用“zzzz”替换4个数字的组
我认为像 REPLACE(@str, '%[0-9][0-9][0-9]%', 'xxx') 这样的东西会起作用,但事实并非如此。我什至无法让'%[0-9]%' 替换任何东西。
如果 REPLACE 不合适,我该如何替换数字组?
【问题讨论】:
-
根据文档,替换不接受通配符。
-
@DaleK 关于如何在没有 REPLACE 的情况下完成此任务的建议?
-
不是真的,它不是 SQL 擅长的......如果你必须在 SQL Server 中执行它,请尝试使用 CLR 函数。
-
我想我可以使用 PATINDEX 和 STUFF
-
要轻松做到这一点,您需要一个正则表达式替换,遗憾的是 SQL Server 不支持开箱即用。
标签: sql sql-server tsql replace