Poiché sei .net
sviluppatore Immagino che per te sarà facile scrivere un .net
funzione che puoi usare nel tuo T-SQL
codice. Per scrivere SQL CLR
funzioni controlla questa risposta
(Ho usato uno dei link per implementare SQL CLR
funzione regolare.
Diciamo che devi dividere i valori per blocchi di 4 lunghezze e mostrarne al massimo 6:
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;
Ora i dati sono divisi. Facciamo pivot
it e mostra solo 6 dei blocchi:
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;
Qui uso regex
funzione per dividere i dati e PIVOT
per creare colonne ed escludere alcuni blocchi. Ora puoi inserire i dati nella tabella per materializzarli e quindi esportarli. Puoi implementare tale funzione utilizzando il link sopra o creare la tua funzione facendo qualcosa di cui hai bisogno.