从字符串中删除字符

时间:2014-09-06 09:38:51

标签: sql sql-server tsql

我有一个字符串,现在我想替换字符串之间的逗号。

Declare @Query nvarchar(max)
Set @Query = 'Item1,Item2,"Item,Demo,3",New'

从给定的字符串中我想从双引号之间删除逗号("")

我想要这样的结果

'Item1,Item2,ItemDemo3,New'

此处"Item,Demo,3"部分现在ItemDemo3

1 个答案:

答案 0 :(得分:1)

想法是使用PATINDEX来查找模式。 在这里,我使用patindex查找双引号,然后使用所需子字符串的开始和长度。 将有三个部分:之前,修改期望和之后

然后我替换了逗号并重新制作了字符串

    Declare @Query nvarchar(max) 

    Set @Query = 'Item1,Item2,"Item,Demo,3",New'

    Declare @start int, @len int
    SELECT @start = PATINDEX('%"%"%', @Query) + 1

    select @len=CHARINDEX('"', SUBSTRING(@Query, @start, LEN(@Query))) - 1

    select 
        SUBSTRING(@Query, 1, @start - 2) +
        REPLACE((SUBSTRING(@Query, @start, @len)), ',', '') +
        SUBSTRING(@Query, @start + @len + 1, LEN(@Query))

请告诉我它是否有效..