Замените идентификаторы соответствующими текстовыми значениями в строке - PullRequest
0 голосов
/ 26 июля 2011

У меня есть строка, которая предоставляет мне значения, как показано ниже:

ClubbedValues
-----------------------------------------------------
561#557, 562#558, 563#559, 561#560, 562#560
581#578, 581#579, 581#580
561#557, 562#558, 562#559, 563#560

У меня есть основная таблица, в которой у меня есть текстовые значения для этих идентификаторов.Например:

Id     TextValue
-----------------------------------------------------
561    Value1
562    Value2
563    Value3
564    Value4
565    Value5

Теперь мне как-то нужен следующий вывод:

ClubbedValues
-----------------------------------------------------
Value1#Value107, Value2#Value108, Value3#Value109 etc..

Где оба текстовых значения отображаются где-то в главной таблице.

Я надеюсьВы получили вопрос ....

Любая помощь будет оценена.

Спасибо.

1 Ответ

1 голос
/ 27 июля 2011

Вы можете сделать это, используя переменную таблицы и цикл по всем значениям, которые вам нужно заменить.

declare @T table(ClubbedValues varchar(max))
declare @Id int
declare @Value varchar(10)

-- Get the rows from YourTable that you need to process  
insert into @T
select ClubbedValues
from [your table]

select top 1 
  @Value = TextValue,
  @Id = Id
from [master table]
order by Id  

while @@rowcount > 0
begin
  update @T 
    set ClubbedValues = replace(ClubbedValues, cast(@Id as varchar(10)), @Value)

  select top 1 
    @Value = TextValue,
    @Id = Id
  from [master table]
  where Id > @Id
  order by Id  
end

select *
from @T
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...