Código de SQL - Función que dada una cadena y un carácter delimitador, regresa una tabla de una columna

Imágen de perfil

Función que dada una cadena y un carácter delimitador, regresa una tabla de una columnagráfica de visualizaciones


SQL

Publicado el 30 de Junio del 2014 por Jonathan
1.459 visualizaciones desde el 30 de Junio del 2014. Una media de 14 por semana
Función que dada una cadena y un carácter delimitador, regresa una tabla de una columna.
El Número de registros o filas será el nro. de veces que aparece el carácter delimitador mas uno.
Ejemplo: si se le pasa la cadena "Juan,Pedro,Jesus" como primer parámetro y "," como segundo parámetro la función devolverá una tabla con 3 Registros, uno por cada nombre dado

Versión 1

Publicado el 30 de Junio del 2014gráfica de visualizaciones de la versión: Versión 1
1.460 visualizaciones desde el 30 de Junio del 2014. Una media de 14 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
/****** Object:  UserDefinedFunction [dbo].[CONVERT_CADENA_A_TABLA]    Script Date: 06/26/2014 16:07:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[CONVERT_CADENA_A_TABLA](
 @sInputList VARCHAR(max) -- List of delimited items
 , @sDelimiter VARCHAR(max) --=,’ — delimiter that separates items
 ) RETURNS @List TABLE (columna VARCHAR(MAX))
 /******Autor: Jonathan Mujica******************/
/*Descripción: Función que dada una cadena y un caracter delimitador, regresa una tabla de una columna. 
               El Número de registros o filas será el nro. de veces que aparece el caracter delimitador mas uno.
			   Ejemplo: si se le pasa la cadena "Juan,Pedro,Jesus" como primer parametro y "," como segundo parametro la función devolverá una tabla con 3 Registros, uno por cada nombre dado*/
 
BEGIN
 DECLARE @sItem VARCHAR(MAX)
 WHILE CHARINDEX(@sDelimiter,@sInputList,0) <> 0
 BEGIN
	 SELECT
	 @sItem=RTRIM(LTRIM(SUBSTRING(@sInputList,1,CHARINDEX(@sDelimiter,@sInputList,0)-1))),
	 @sInputList=RTRIM(LTRIM(SUBSTRING(@sInputList,CHARINDEX(@sDelimiter,@sInputList,0)+LEN(@sDelimiter),LEN(@sInputList))))
 
	IF LEN(@sItem) > 0
		INSERT INTO @List SELECT @sItem
	END
 
	IF LEN(@sInputList) > 0 INSERT INTO @List SELECT @sInputList -- Put the last item in
	 RETURN
 END



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


No hay comentarios
 

Comentar la versión: Versión 1

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

http://lwp-l.com/s2706