Como você é
.net
desenvolvedor, acho que será fácil para você escrever um .net
função que você pode usar em seu T-SQL
código. Para escrever SQL CLR
funções verifique esta resposta
(Eu usei um dos links para implementar SQL CLR
função regex. Digamos que você precise dividir os valores em pedaços de 4 comprimentos e mostrar no máximo 6 deles:
DECLARE @DataSouce TABLE
(
[RecordID] TINYINT IDENTITY(1,1) PRIMARY KEY
,[RecordData] NVARCHAR(MAX)
);
INSERT INTO @DataSouce ([RecordData])
VALUES ('test some test goes here')
,('some numbers go here - 1111122222233333344444444445');
SELECT DS.[RecordID]
,RM.[MatchID]
,RM.[CaptureValue]
FROM @DataSouce DS
CROSS APPLY [dbo].[fn_Utils_RegexMatches] ([RecordData], '.{1,4}') RM;
Agora os dados são divididos. Vamos
pivot
e mostre apenas 6 dos pedaços:SELECT *
FROM
(
SELECT DS.[RecordID]
,RM.[MatchID]
,RM.[CaptureValue]
FROM @DataSouce DS
CROSS APPLY [dbo].[fn_Utils_RegexMatches] ([RecordData], '.{1,4}') RM
) DS
PIVOT
(
MAX([CaptureValue]) FOR [MatchID] IN ([0], [1], [2], [3], [4], [5], [6])
) PVT;
Aqui eu uso
regex
função para dividir os dados e PIVOT
para criar colunas e excluir alguns dos pedaços. Agora você pode inserir os dados na tabela para materializá-los e depois exportá-los. Você pode implementar tal função usando o link acima ou criar sua própria função fazendo algo que você precisa.