Seperti Anda .net developer Saya rasa akan mudah bagi Anda untuk menulis .net fungsi yang dapat Anda gunakan di T-SQL Anda kode. Untuk menulis SQL CLR fungsi periksa jawaban ini
(Saya telah menggunakan salah satu tautan untuk mengimplementasikan SQL CLR fungsi ekspresi reguler.
Katakanlah Anda perlu membagi nilai dengan potongan 4-panjang dan menampilkan maksimum 6 di antaranya:
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;
Sekarang data dibagi. Mari pivot itu dan tampilkan hanya 6 bagian:
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;
Disini saya menggunakan regex berfungsi untuk membagi data dan PIVOT untuk membuat kolom dan mengecualikan beberapa potongan. Anda sekarang dapat memasukkan data ke dalam tabel untuk mewujudkannya dan kemudian mengekspornya. Anda dapat mengimplementasikan fungsi tersebut menggunakan tautan di atas atau membuat fungsi Anda sendiri dengan melakukan sesuatu yang Anda butuhkan.

