Use AsG
Go
Drop FUNCTION AsG_inListesiOlustur
Go
CREATE FUNCTION AsG_inListesiOlustur (@pDegerListesi nvarchar(MAX), @pBossaVarsayilanDeger varchar(50))
RETURNS @pNeticeTablo TABLE (Deger varchar(50) NOT NULL) AS
BEGIN
DECLARE @Pozisyon int,
@sonrakiPozisyon int,
@uzunluk int
SELECT @Pozisyon = 0, @sonrakiPozisyon = 1
Select @pDegerListesi = LTRIM(RTRIM(@pDegerListesi))
If LEN(@pDegerListesi) = 0
Begin
If LEN(@pBossaVarsayilanDeger) > 0
Begin
INSERT @pNeticeTablo (Deger) VALUES (@pBossaVarsayilanDeger)
End
End Else
Begin
WHILE @sonrakiPozisyon > 0
BEGIN
SELECT @sonrakiPozisyon = CharIndex(',', @pDegerListesi, @Pozisyon + 1)
SELECT @uzunluk = CASE WHEN @sonrakiPozisyon > 0
THEN @sonrakiPozisyon
ELSE Len(@pDegerListesi) + 1
END - @Pozisyon - 1
INSERT @pNeticeTablo (Deger)
VALUES (Convert(varchar, SubString(@pDegerListesi, @Pozisyon + 1, @uzunluk)))
SELECT @Pozisyon = @sonrakiPozisyon
End
End
RETURN
END
Go
Select * From [AsG].[dbo].[AsG_inListesiOlustur]('1,4', '0')
Go
Select * From [AsG].[dbo].[AsG_inListesiOlustur]('', '')
Go