sql语句分类 用sql中的函数替换空格



sql语句分类 (1)

我目前正在开发一个程序,我想写一个函数,接受一个值在以下格式

"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-function