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ı

GO
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.

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir