2014-09-06 280 views
0

我有一个字符串,现在我想要替换字符串之间的逗号。从字符串中删除字符

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

从给定的字符串我想从双引号( “”)

我想造成这样的

'Item1,Item2,ItemDemo3,New' 

下面这个"Item,Demo,3"部分现在ItemDemo3

回答

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)) 

请让我知道它是否工作..

+2

它给'项目1 ,项目2, “ItemDemo3”,New'。该OP要'Item1,Item2,ItemDemo3,新' – 2014-09-06 10:13:50

+0

谢谢阿马尔,我已经更新的答案删除报价也.. – masum7 2014-09-06 10:17:59

+0

Yw。现在它工作正常。 :) – 2014-09-06 10:20:44