Som du er .net
udvikler Jeg gætter på, at det vil være nemt for dig at skrive en .net
funktion, som du kan bruge i din T-SQL
kode. For at skrive SQL CLR
funktioner check dette svar
(Jeg har brugt et af linkene til at implementere SQL CLR
regex funktion.
Lad os sige, at du skal opdele værdierne i 4-længde bidder og vise maksimalt 6 af dem:
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;
Nu er dataene opdelt. Lad os pivot
det og vis kun 6 af bidderne:
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;
Her bruger jeg regex
funktion til at opdele data og PIVOT
at oprette kolonner og udelukke nogle af bidderne. Du kan nu indsætte dataene i tabellen for at materialisere dem og derefter eksportere dem. Du kan implementere en sådan funktion ved at bruge linket ovenfor eller oprette din egen funktion ved at gøre noget, du har brug for.