Eftersom du är .net
utvecklare Jag antar att det blir lätt för dig att skriva en .net
funktion som du kan använda i din T-SQL
koda. För att skriva SQL CLR
funktioner kontrollera det här svaret
(Jag har använt en av länkarna för att implementera SQL CLR
regex-funktion.
Låt oss säga att du måste dela upp värdena i fyra långa bitar och visa maximalt sex av 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 är uppgifterna delade. Låt oss pivot
det och visa bara 6 av bitarna:
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;
Här använder jag regex
funktion för att dela upp data och PIVOT
för att skapa kolumner och utesluta några av bitarna. Du kan nu infoga data i tabellen för att materialisera den och sedan exportera den. Du kan implementera en sådan funktion genom att använda länken ovan eller skapa din egen funktion som gör något du behöver.