SQL split işlemi

Sql veritabanında sakladığımız verileri yada veritabanına aktarmak istediğimiz verileri parçalara bölerek düzenleyerek kaydetmek isteyebiliriz.Malesef SQL’de split methodu bulunmamakta.Bunun yerine alternatif olarak kendi fonksiyonlarımızı yazabiliriz.

CREATE FUNCTION dbo.MetinParcala
(
@Metin NVARCHAR(MAX)
)
RETURNS @DuzenlenmisTablo TABLE
(
ID INT IDENTITY(1,1),
AyrilmisMetin NVARCHAR(MAX)
)
AS
BEGIN
DECLARE @Sayac INT
DECLARE @INDEX INT,@Ayrac NVARCHAR(MAX)
SET @Ayrac = ","
 
SET @INDEX = CHARINDEX(@Ayrac,@Metin)
WHILE (@Index>0)
BEGIN
INSERT INTO @DuzenlenmisTablo (AyrilmisMetin)
SELECT
AyrilmisMetin = LTRIM(RTRIM(SUBSTRING(@Metin, 1, @INDEX - 1)))
SET @Metin = SUBSTRING(@Metin,
@INDEX + DATALENGTH(@Ayrac) / 2, LEN(@Metin))
SET @INDEX = CHARINDEX(@Ayrac, @Metin)
END
 
INSERT INTO @DuzenlenmisTablo (AyrilmisMetin)
SELECT AyrilmisMetin = LTRIM(RTRIM(@Metin))
RETURN
END

Function çalıştırmak için aşağıdaki gibi kullanabiliriz.

SELECT * FROM dbo.MetinParcala('www,salihulukoylu,com')

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir