2014-09-06 7 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

Это дает 'ITEM1 , Элемент2, "ItemDemo3", new'. OP хочет 'Item1, Item2, ItemDemo3, New' –

+0

Спасибо Amar, я обновил ответ, чтобы удалить цитату также. – masum7

+0

Yw. Теперь он отлично работает. :) –

Смежные вопросы