我想在MS SQL中清理字符串并将各种字符替换为下划线。
下面的代码可以实现:
DECLARE @string nvarchar(MAX)
DECLARE @new_string nvarchar(MAX)
SET @string = 'This is.my string/That Needs=cleaning'
SET @new_string = REPLACE(REPLACE(REPLACE(REPLACE(@string, ' ', '_'), '.', '_'), '/', '_'), '=', '_')
SELECT @new_string
这将返回'This_is_my_string_That_Needs_cleaning'
我将使用这个来清理文件名。
是否有更有效的方法,也许通过regex ?
SQL Server 2017+现在支持translate()
:
select @new_string = translate(@string, ' ./=', '____')
这是一个db<>小提琴