К сожалению, string_split()
не гарантирует упорядочение возвращаемых значений. У него также нет опции для возврата номера индекса.
Если элементы в каждой строке уникальны, вы можете сделать:
select s1.value as name, s2.value as b64
from (select s.value,
row_number() over (order by charindex(',' + s.value + ',', ',' + @var_1 + ',')) as seqnum
from string_split(@var_1, ',') s
) s1 join
(select s.value,
row_number() over (order by charindex(',' + s.value + ',', ',' + @var_2 + ',')) as seqnum
from string_split(@var_2, ',') s
) s2
on s1.seqnum = s2.seqnum;
Здесь - это db <> скрипка.