Alternatywa dla STRING_SPLIT w MSSQL

Poniżej przykład podzielenia tekstu i wprowadzenie go do tabeli. Ciąg znaków odseparowany od siebie np. przecinkiem. Dane w tabeli można dalej przetwarzać w SQL.

Poniższy przykład również pomaga obejść błąd
’STRING_SPLIT’ is not a recognized built-in function name.

Przykładowo mamy ciąg znaków odseparowany przecinkiem:
declare @str2arr as varchar(200);
set @str2arr = '5, 10, 12';

Aby podzielić ciąg znaków (String) i wprowadzić dane do tymczasowej tabeli należy wykonać:
declare @Str2ArrTable as table(p int);

insert into @Str2ArrTable
select trim(split.a.value('.', 'VARCHAR(100)'))
from (select Cast ('' + Replace(@str2arr, ',', '') + '' as XML) as Data) as A
cross apply data.nodes ('/M') AS Split(a);

Dane znajdują się w tabeli. Aby je podejrzeć:
select * from @Str2ArrTable;

Dane z tabeli można wykorzystań np. w innym zapytaniu SQL jako warunek:
select * from Dokumenty where typDok in (
select p from @Str2ArrTable
);