Sayfalar

25 Ekim 2014 Cumartesi

SQL String degeri sabit karakter aralığına göre parçalayıp integer döndüren function

CREATE FUNCTION [dbo].[Integer_Split](@String varchar(max))  
 RETURNS @tbl TABLE (number int NOT NULL) AS
 BEGIN
 DECLARE @pos        int,
       @nextpos    int,
       @valuelen   int

 SELECT @pos = 0, @nextpos = 1

 WHILE @nextpos > 0
 BEGIN
  SELECT @nextpos = charindex(',', @String, @pos + 1)
  SELECT @valuelen = CASE WHEN @nextpos > 0
                          THEN @nextpos
                          ELSE len(@String) + 1
                     END - @pos - 1
  INSERT @tbl (number)
     VALUES (convert(int, substring(@String, @pos + 1, @valuelen)))
  SELECT @pos = @nextpos
 END
 RETURN
end

Hiç yorum yok:

Yorum Gönder