SQL Server’da Recursive Split Fonksiyon Oluşturmak
Herkese merhaba,
Bu yazıda SQL Server’da recursive split fonksiyon oluşturmak hakkında bilgi vereceğim.
SQL Server’da bazı durumlarda virgülle ayrılımış ya da herhangi bir ayraç kullanılarak ayrılmış uzun cümleleri ayırmak isteyebiliriz.
Aşağıdaki kodlar yardımıyla bu işlemi rahatlıkla yapabilirsiniz.
CREATE FUNCTION [GetKelimeAd]
(
@Cumleniz NVARCHAR(MAX),
@Ayrac NVARCHAR(1)
)
RETURNS @Kelimeler TABLE
(
KelimeAd VARCHAR(MAX)
)
AS
BEGIN
DECLARE @AyrilmisDeger NVARCHAR(MAX);
DECLARE @CumleninGeriKalani NVARCHAR(MAX);
SET @AyrilmisDeger = LTRIM(SUBSTRING(@Cumleniz, 0, CHARINDEX(@Ayrac, @Cumleniz)));
SET @CumleninGeriKalani = LTRIM(SUBSTRING(@Cumleniz, CHARINDEX(@Ayrac, @Cumleniz) + 1, LEN(@Cumleniz)));
IF CHARINDEX(@Ayrac, @CumleninGeriKalani) <= 0
BEGIN
IF @AyrilmisDeger IS NOT NULL
INSERT INTO @Kelimeler
(
KelimeAd
)
SELECT @AyrilmisDeger;
IF @AyrilmisDeger IS NOT NULL
INSERT INTO @Kelimeler
(
KelimeAd
)
SELECT @CumleninGeriKalani;
RETURN;
END;
INSERT INTO @Kelimeler
(
KelimeAd
)
SELECT @AyrilmisDeger
UNION
SELECT KelimeAd
FROM dbo.GetKelimeAd(@CumleninGeriKalani, @Ayrac);
RETURN;
END;
--Kullanımı
SELECT * FROM dbo.GetKelimeAd('yavuz,selim,kart',',')
Fonksiyonu oluşturduktan sonra kullandığınızda aşağıdaki gibi bir sonuç alacaksınız.
Görüldüğü üzere virgülle ayrılan cümlemiz satır satır ayrılmış oldu.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.