Como eres .net
desarrollador Supongo que será fácil para ti escribir un .net
función que puede usar en su T-SQL
código. Para escribir SQL CLR
funciones comprobar esta respuesta
(He usado uno de los enlaces para implementar SQL CLR
función de expresión regular.
Digamos que necesita dividir los valores en fragmentos de 4 longitudes y mostrar un máximo de 6 de ellos:
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;
Ahora los datos están divididos. Vamos a pivot
y muestra solo 6 de los fragmentos:
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;
Aquí uso regex
función para dividir los datos y PIVOT
para crear columnas y excluir algunos de los fragmentos. Ahora puede insertar los datos en la tabla para materializarlos y luego exportarlos. Puede implementar dicha función usando el enlace de arriba o crear su propia función haciendo algo que necesite.