У меня есть таблица с текстом, который я хочу разобрать, и я очень близок к решению, но его там не совсем.у меня есть столбец под названием IndicatorNumerator, и я хочу разобрать, как показано ниже, то есть я хочу, чтобы каждое из значений в квадратных скобках в новой строке.как вы можете видеть из вывода ниже, я получаю повторение для первого значения после минуса.это не происходит для тех, у кого нет минуса.

моя функция выглядит следующим образом:
alter function fn_breakdown (@string varchar(max))
returns @breakdown table
(
originalstr varchar(max),
breakdownstr varchar(max)
)
as
begin
while charindex('r',@string,1) >0
begin
insert into @breakdown
select @string,
SUBSTRING(@string,CHARINDEX('r',@string,1),CHARINDEX(']',@string,1)-CHARINDEX('r',@string,1))
set @string = right(@string,len(@string)-CHARINDEX(')',@string,1))
end
return
end
aВторое, что я хотел бы сделать, это вернуть те, которые после минус, как минус значение, например.-R101 вместо R101, так как мне нужно вычесть эти значения позже.
Любая помощь, высоко ценимая
ниже должна создать временную таблицу и покажет вам результат, который я получаю.вы увидите, что одна из строк дублирует.я хочу иметь одну строку для каждого значения, начинающегося с 'R' в столбце индикаторного числителя
создать таблицу # temped2 (индикаторный счетчик varchar (max))
вставить в # temped2 select '(SUM([R4]) + SUM ([R1010])) - (SUM ([R1035]) + SUM ([R1034])) '
выбрать * из # temped2 cross apply fn_breakdown (индикатор числителя)