2016-03-09 2 views
3

У меня есть одна строка таблицы:Как заменить повторяющиеся строки с увеличением порядка в T-SQL?

Id | Description 
--------------- 
1 #Hello#, Its 5 am. #Hello#, Its 9 am. #Hello# its 12 pm. 

Я хочу, чтобы заменить эти повторяющиеся строки #Hello# с увеличением порядка. Мне нужен выход, как

Id | Description 
--------------- 
1 #Hello#, Its 5 am. #Hello1#, Its 9 am. #Hello2# its 12 pm 
+3

Я рекомендую нормализации базы данных, так что вы можете воспользоваться возможностями _relational_ на сервере SQL. –

ответ

1

Попробуйте это,

DECLARE @V_STR  NVARCHAR(1000) = (SELECT [Description] FROM [Table1]) 
     ,@V_COUNT INT = 0 
     ,@V_TMP  NVARCHAR(100) = '#Hello#' 
WHILE ((CHARINDEX(@V_TMP,@V_STR)) > 0) 
BEGIN 
    SELECT @V_STR = STUFF(@V_STR,(CHARINDEX(@V_TMP,@V_STR)),LEN(@V_TMP),'#Hello'+CAST(@V_COUNT AS NVARCHAR)+'#') 
    SET @V_COUNT += 1 
END 
SELECT @V_STR 
+0

Его рабочий брат –

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