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.

SQL Server’da Recursive Split Fonksiyon Oluşturmak

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.

428 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!