Comme vous êtes .net
développeur, je suppose qu'il vous sera facile d'écrire un .net
fonction que vous pouvez utiliser dans votre T-SQL
code. Pour écrire SQL CLR
fonctions vérifier cette réponse
(J'ai utilisé l'un des liens pour implémenter SQL CLR
fonction régulière.
Supposons que vous deviez diviser les valeurs en blocs de 4 longueurs et en afficher 6 au maximum :
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;
Maintenant, les données sont divisées. Faisons pivot
et affichez seulement 6 des morceaux :
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;
Ici, j'utilise regex
fonction pour diviser les données et PIVOT
pour créer des colonnes et exclure certains des morceaux. Vous pouvez maintenant insérer les données dans le tableau afin de les matérialiser puis de les exporter. Vous pouvez implémenter une telle fonction en utilisant le lien ci-dessus ou créer votre propre fonction en faisant quelque chose dont vous avez besoin.