UTNianos

Versión completa: [GestionDeDatos]Parsear categorias
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Muchachos a ver si me ayudan con esto:

Tengo unos productos q pertenecen a una categoria
El tema es que viene dado asi
Producto Cocina, Categoria 'Coccion|cocina'

Yo lo que necesito es armar una tabla que me quede asi:
Que lo procese tipo arbol.....

------- |Padre|Hijo
Coccion| NULL | Cocina
Cocina |Coccion| NULL

Buscando y buscando encontré esta funcion que pasandole el string y el delimitador te lo parsea, pero es distinto a lo que necesito...

CREATE FUNCTION ADOQUINES.Split(@String varchar(8000), @Delimiter char(1))
returns @temptable TABLE (items varchar(8000))
as
begin
declare @idx int
declare @slice varchar(8000)

select @idx = 1
if len(@String)<1 or @String is null return

while @idx!= 0
begin
set @idx = charindex(@Delimiter,@String)
if @idx!=0
set @slice = left(@String,@idx - 1)
else
set @slice = @String

if(len(@slice)>0)
insert into @temptable(Items) values(@slice)

set @String = right(@String,len(@String) - @idx)
if len(@String) = 0 break
end
return
end

EJEMPLO
select * from ADOQUINES.Split('TV¦LCD¦27 pulgadas¦1080p','¦')

Devuelve las 4 filas

Items

TV
LCD
27 Pulgadas
1080p


Gracias desde ya al que pueda ayudarme!!

Saludos
Juan
Perdon, supongo que lo necesitas en sql server no?
en general es mas recomendable hacer este tipo de cosas en la aplicacion y no delegarselas a la base de datos
(23-05-2011 17:05)brunodiaz escribió: [ -> ]Perdon, supongo que lo necesitas en sql server no?
en general es mas recomendable hacer este tipo de cosas en la aplicacion y no delegarselas a la base de datos

sí, estoy de acuerdo con eso, pero "lamentablemente" en gestión de datos v2.0 pretenden que el motor de BD haga todo, y básicamente que dejemos la "programación" para la view simplemente.

todo se soluciona con store procedures y todo eso. o sea, terminamos siendo programadores de pl-sql y t-sql.
¿Posta hacen eso?. Por más que se intente al alumno hacer que aprenda PL-SQL y SQL de esa forma, me parece pésimo que esten incurriendo en esas malas prácticas. Espero que hagan énfasis en que eso no está bien, y que solo es a modo "didáctico".
pero como hacerlo en la aplicación si lo necesitamos para migrar una tabla maestra a una tabla normalizada por nosotros en nuestro modelo.................
(23-05-2011 17:42)LeaTex escribió: [ -> ]
(23-05-2011 17:05)brunodiaz escribió: [ -> ]Perdon, supongo que lo necesitas en sql server no?
en general es mas recomendable hacer este tipo de cosas en la aplicacion y no delegarselas a la base de datos

sí, estoy de acuerdo con eso, pero "lamentablemente" en gestión de datos v2.0 pretenden que el motor de BD haga todo, y básicamente que dejemos la "programación" para la view simplemente.

todo se soluciona con store procedures y todo eso. o sea, terminamos siendo programadores de pl-sql y t-sql.


Off-topic:
Qué onda? No es la primera vez que escucho en mi querida carrera que tenemos que dejar a los motores solitos [aclaro, no curso GDD ahora, estoy algo más abajo aún, pero igual manejo algo de SQL, básico..]
Yo lo hice con Cursores y Con una funcion q me parsea el string y me lo devuelve en una tabla
gracias chicos!!
ya resolvimos este problema en el grupo, saludos!
URLs de referencia