7:38 0 0
SQL Split

SQL Split

  DrUalcman |  julio 202021

En mi anterior blog explicaba como eliminar palabras repetidas de una cadena separada por algun tipo de caracter, y hacía referencia a una función SPLIT de que da la casualidad que aún no había creado el blog. Bueno pues aquí está el blog en cuestión. Perdón por mi error, pero pensé que ya había hecho este blog porque lo tenía preparado hace tiempo, pero parece que al final nunca llegué a ponerme manos a la obra y a escribir el blog.

Como en otros blogs de trucos, sencillamente pongo el código, ya que es una función muy sencilla y fácil de comprender, no necesita mucha explicación.

SPLIT

CREATE FUNCTION Split
(
@Line nvarchar(MAX),
@SplitOn nvarchar(5) = ','
)
RETURNS @RtnValue table
(
Id INT NOT NULL IDENTITY(1,1) PRIMARY KEY CLUSTERED,
Words varchar(1000) NOT NULL
)
AS
--========================================================
--Author: < dsz https://stackoverflow.com/users/1331446/dsz>
--Modified: < Sergi Ortiz Gomez>
--Create date: < 08 August 2020>
--Description: < Split string delimited by character into a table>
--=========================================================
BEGIN
IF @Line IS NULL RETURN

DECLARE @split_on_len INT = LEN(@SplitOn)
DECLARE @start_at INT = 1
DECLARE @end_at INT
DECLARE @data_len INT

WHILE 1=1
BEGIN
SET @end_at = CHARINDEX(@SplitOn,@Line,@start_at)
SET @data_len = CASE @end_at WHEN 0 THEN LEN(@Line) ELSE @end_at-@start_at END
INSERT INTO @RtnValue (Words) VALUES( ltrim(rtrim(SUBSTRING(@Line,@start_at,@data_len))) );
IF @end_at = 0 BREAK;
SET @start_at = @end_at + @split_on_len
END

RETURN
END


0 Comentarios

 
 
 

Archivo