Jako vy jste .net
vývojář Myslím, že pro vás bude snadné napsat .net
funkci, kterou můžete použít ve svém T-SQL
kód. Chcete-li napsat SQL CLR
kontrola funkcí tato odpověď
(Použil jsem jeden z odkazů k implementaci SQL CLR
funkce regulárního výrazu.
Řekněme, že potřebujete rozdělit hodnoty na 4-délkové části a zobrazit maximálně 6 z nich:
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;
Nyní jsou data rozdělena. Pojďme pivot
a zobrazit pouze 6 kusů:
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;
Zde používám regex
funkce pro rozdělení dat a PIVOT
vytvořit sloupce a vyloučit některé části. Nyní můžete vložit data do tabulky, abyste je zhmotnili, a poté je exportovat. Tuto funkci můžete implementovat pomocí výše uvedeného odkazu nebo si vytvořit vlastní funkci, která dělá něco, co potřebujete.