Mssql Split Table Function


Tablo Döndüren Split Fonksiyonu


set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

CREATE FUNCTION [dbo].[Split](@String nvarchar(4000), @Delimiter char(1))
returns @Results TABLE (Sno int,Items nvarchar(4000))
as
   begin
   declare @index int
   declare @slice nvarchar(4000)
   declare @sno int

   select @index = 1
   if @String is null return
   
   set @sno = 0

   while @index != 0
       begin
        select @index = charindex(@Delimiter,@String)
          if @index !=0
           select @slice = left(@String,@index - 1)
          else
             select @slice = @String
            
            set @sno = @sno + 1
          insert into @Results(sno,Items) values(@sno,@slice)
          select @String = right(@String,len(@String) - @index)
          if len(@String) = 0 break
       end    return
end

Kullanımı :
SELECT * FROM [dbo].Split('merhaba dünya,nasılsınız..,bakalım',',');


Sonuç:

Sno         Items
----------- ---------------------------
1           merhaba dünya
2           nasılsınız..
3           bakalım

(3 row(s) affected)