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