Código de SQL - Función split

Función splitgráfica de visualizaciones


SQL

estrellaestrellaestrellaestrellaestrella(2)
Publicado el 17 de Junio del 2011 por Roger Bermudez
20.071 visualizaciones desde el 17 de Junio del 2011. Una media de 77 por semana
Función de SQL Server, que dada una cadena, te realiza la separación de la misma segun un valor dado.
Ejemplo:
select * from fn_Split('234#345','#')
Resultado:
position|value
1|234
2|345

Versión 1
estrellaestrellaestrellaestrellaestrella(2)

Publicado el 17 de Junio del 2011gráfica de visualizaciones de la versión: Versión 1
20.072 visualizaciones desde el 17 de Junio del 2011. Una media de 77 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
if exists (select * from dbo.sysobjects where id = ob-ject_id(N'[dbo].[fn_Split]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fn_Split]
GO
 
 
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
 
CREATE  FUNCTION fn_Split(@text varchar(8000), @delimiter varchar(20) = ' ')
RETURNS @Strings TABLE
(
  position int IDENTITY PRIMARY KEY,
  value varchar(8000)
)
AS
BEGIN
 
DECLARE @index int
SET @index = -1
 
 WHILE (LEN(@text) > 0)
  BEGIN
    SET @index = CHARINDEX(@delimiter , @text)
    IF (@index = 0) AND (LEN(@text) > 0)
      BEGIN
        INSERT INTO @Strings VALUES (@text)
          BREAK
      END
    IF (@index > 1)
      BEGIN
        INSERT INTO @Strings VALUES (LEFT(@text, @index - 1))
        SET @text = RIGHT(@text, (LEN(@text) - @index))
      END
    ELSE
      SET @text = RIGHT(@text, (LEN(@text) - @index))
    END
  RETURN
END
 
GO
 
SET QUOTED_IDENTIFIER OFF
GO
 
SET ANSI_NULLS ON
GO



Comentarios sobre la versión: Versión 1 (2)

damian cipolat
11 de Julio del 2011
estrellaestrellaestrellaestrellaestrella
Muy buena la función.
Esta interesante que te retorne directamente una tabla con los resultados..
Voy a usarla para algunos proyectos que tengo en cuenta.
gracias por el aporte,saludos desde argentina
Responder
Ismael Roj
13 de Octubre del 2011
estrellaestrellaestrellaestrellaestrella
muchas gracias por el aporte, es de mucha utilidad.
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s2084