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.

433 Kez Okundu

Kategoriler: