Zoals je bent .net
ontwikkelaar Ik denk dat het gemakkelijk voor je zal zijn om een .net
. te schrijven functie die u kunt gebruiken in uw T-SQL
code. Om SQL CLR
te schrijven functies check dit antwoord
(Ik heb een van de links gebruikt om SQL CLR
te implementeren regex-functie.
Laten we zeggen dat je de waarden moet splitsen in stukken van 4 lengtes en er maximaal 6 moet tonen:
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 zijn de gegevens gesplitst. Laten we pivot
het en laat slechts 6 van de chunks zien:
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;
Hier gebruik ik regex
functie om de gegevens te splitsen en PIVOT
om kolommen te maken en enkele chunks uit te sluiten. U kunt nu de gegevens in de tabel invoegen om deze te materialiseren en vervolgens exporteren. Je kunt een dergelijke functie implementeren met behulp van de bovenstaande link of je eigen functie maken door iets te doen wat je nodig hebt.