Объединить 2 возвращающие табличное значение функции в одну таблицу с другим столбцом - PullRequest
0 голосов
/ 09 июля 2020

Для начала у меня есть функция stringSplit() табличное значение.

Предположим, у меня есть следующие параметры:

var_1 = 'Apple.jpg,Carrot.png,Fruits.pdf'
var_2 = '9V0I1fab\CvaA5h,IV0asdkas//bVasA,Uasdl00/9asA' //Example base64 formats

Как бы я go так, чтобы после использования stringSplit(var_1, ',') и stringSplit(var_2, ',')? Он должен объединиться в одну таблицу с разными столбцами, скажем:

| name       |       b64        |
---------------------------------
| Apple.jpg  | 9V0I1fab\CvaA5h  |
| Carrot.png | IV0asdkas//bVasA |
| Fruits.pdf | Uasdl00/9asA     |

1 Ответ

0 голосов
/ 09 июля 2020

К сожалению, 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 <> скрипка.

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