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
2.997 visualizaciones desde el 30 de Junio del 2014
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
2.998 visualizaciones desde el 30 de Junio del 2014
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...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s2706