gpt4 book ai didi

SQL字符替换功能扩展

转载 作者:行者123 更新时间:2023-12-01 23:10:27 25 4
gpt4 key购买 nike

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

"AAAA BBBB"  CCCC DDDD EEEE "FFFF GGGG HHHH"

我想用“_”替换上面的空格,并需要如下格式所示的输出(请注意,这只适用于双引号内的字符串)

"AAAA_BBBB"  CCCC DDDD EEEE "FFFF_GGGG_HHHH"

所以I got the correct answer to this in my previous question

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 cccc

它的输出为

"AAAA_BBBB"  CCCC DDDD EEEE "FFFF_GGGG_HHHH_cccc

但它必须仅给出第一个封闭的双引号字符串的输出,因为其他双引号字符串未闭合,预期输出应如下

"AAAA_BBBB"  CCCC DDDD EEEE "FFFF GGGG HHHH cccc

最佳答案

请引用此代码。我认为这段代码会给出一些提示。该代码不是经过测试的代码。我发布答案是因为至少您会得到一些找到解决方案的提示。

DECLARE @In VARCHAR(50) = '"AAAA BBBB"  CCCC DDDD EEEE "FFFF GGGG HHHH IIIII'

DECLARE @Quote SMALLINT = -1, @Index INT = 1, @Char CHAR(1) ,@New_Char CHAR(100)
WHILE @Index <= LEN(@In) BEGIN
SET @Char = SUBSTRING(@In, @Index, 1)
IF @Char = '"'
SET @Quote = @Quote * -1
SET @New_Char = SUBSTRING(@In, @Index + 1,213)
IF @Char = ' ' AND @Quote > 0 AND @New_Char like '%"%'
SET @In = STUFF(@In, @Index, 1, '_')
SET @Index = @Index + 1
END

PRINT @In

关于SQL字符替换功能扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26522911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com