我有一行为我提供如下所示的值:
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有文本值。例如:
Id TextValue
-----------------------------------------------------
561 Value1
562 Value2
563 Value3
564 Value4
565 Value5
现在我想要以下输出:
ClubbedValues
-----------------------------------------------------
Value1#Value107, Value2#Value108, Value3#Value109 etc..
其中两个文本值都映射到主表中的某个位置。
我希望你能得到这个问题......
任何帮助将不胜感激。
谢谢。
答案 0 :(得分:1)
您可以使用表变量和循环覆盖需要替换的所有值。
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