我目前正在开发一个程序,我想编写一个接受以下格式的值的函数
"AAAA BBBB" CCCC DDDD EEEE "FFFF GGGG HHHH"
我想用“_”替换上面的空格,并且需要如下格式所示的输出 (请注意,这只适用于双引号内的字符串)
"AAAA_BBBB" CCCC DDDD EEEE "FFFF_GGGG_HHHH"
谁能帮我解决这个问题
最佳答案
以下是您可以根据需要添加到函数中的逻辑。
DECLARE @In VARCHAR(50) = '"AAAA BBBB" CCCC DDDD EEEE "FFFF GGGG HHHH"'
DECLARE @Quote SMALLINT = -1, @Index INT = 1, @Char CHAR(1)
WHILE @Index <= LEN(@In) BEGIN
SET @Char = SUBSTRING(@In, @Index, 1)
IF @Char = '"'
SET @Quote = @Quote * -1
IF @Char = ' ' AND @Quote > 0
SET @In = STUFF(@In, @Index, 1, '_')
SET @Index = @Index + 1
END
PRINT @In
输出
"AAAA_BBBB" CCCC DDDD EEEE "FFFF_GGGG_HHHH"
关于sql - 使用sql中的函数替换空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26521414/