SQL Server’da Split Fonksiyonu

Herkese merhaba,

Bu yazıda SQL Server’da Split fonksiyonu ile ilgili bilgi vermeye çalışacağım.

SQL Server’da bazı durumlarda elinizde bulunan virgüllü dizeleri Id’li şekilde ayırarak tablo şeklinde göstermek isteyebilirsiniz.

Aşağıdaki kodu kullanarak siz de bu işlemi rahatlıkla yapabilirsiniz.

CREATE FUNCTION fn_Split
(
    @delimited NVARCHAR(MAX),
    @delimiter NVARCHAR(100)
)
RETURNS @t TABLE
(
    Id INT IDENTITY(1, 1),
    Val NVARCHAR(MAX)
)
AS
BEGIN
    DECLARE @xml XML;
    SET @xml = N'<root><r>' + REPLACE(@delimited, @delimiter, '</r><r>') + '</r></root>';

    INSERT INTO @t
    (
        Val
    )
    SELECT r.value('.', 'varchar(max)') AS item
    FROM @xml.nodes('//root/r') AS records(r);

    RETURN;
END;
GO

--Kullanımı

SELECT * FROM dbo.fn_Split('2,3,6,5,8,9,99',',')

Yukarıdaki kodu çalıştırınca aşağıdakine benzer bir sonuç göreceksiniz.

SQL Server'da Split Fonksiyonu

Görüldüğü üzere elimizde bulunan virgüllü dizeleri Id’li şekilde ayırmış olduk.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

317 Kez Okundu