Consultas recursivas sin cursores

30/06/2004 - 19:08 por Gregorio López Rojo | Informe spam
Hola a todos. He escuchado que las cosas que se hacen con cursores pueden
hacerse sin tener que recurrir a ellos. Tengo este caso; en una tabla como
la siguiente:
CREATE TABLE [Persona] (
[id] [int] IDENTITY (1, 1) NOT NULL,
[Nombre] [varchar] (50) NOT NULL,
[idPadre] [int] NULL
) ON [PRIMARY]

En esta tabla se tienen registradas personas con un id, Nombre, y idPadre
indicando el id del padre de dicha persona, la pregunta es, ¿cómo podría
obtener la lista de descendientes de X persona, incluyendo hijos, nietos,
etc, todo esto sin recurrir a cursores?

Saludos y gracias anticipadas.

Preguntas similare

Leer las respuestas

#1 Gregorio López Rojo
30/06/2004 - 19:51 | Informe spam
El tema "Expandir jerarquías" en los Books Online me iluminó al respecto.

Saludos.

"Gregorio López Rojo" wrote in message
news:
Hola a todos. He escuchado que las cosas que se hacen con cursores pueden
hacerse sin tener que recurrir a ellos. Tengo este caso; en una tabla como
la siguiente:
CREATE TABLE [Persona] (
[id] [int] IDENTITY (1, 1) NOT NULL,
[Nombre] [varchar] (50) NOT NULL,
[idPadre] [int] NULL
) ON [PRIMARY]

En esta tabla se tienen registradas personas con un id, Nombre, y idPadre
indicando el id del padre de dicha persona, la pregunta es, ¿cómo podría
obtener la lista de descendientes de X persona, incluyendo hijos, nietos,
etc, todo esto sin recurrir a cursores?

Saludos y gracias anticipadas.


Respuesta Responder a este mensaje
#2 Isaías
30/06/2004 - 19:51 | Informe spam
Hola

Para obtener la "raiz" o "Padre"

SELECT * FROM Persona WHERE id=idPadre
AND id = 2 Como ejemplo la persona 2

Para obtener todo su "arbol" o descendencia.

SELECT * FROM Persona WHERE id<>idPadre
AND idPadre = 2 Como ejemplo la persona 2

¿Cierto?
Respuesta Responder a este mensaje
#3 Gregorio López Rojo
30/06/2004 - 20:38 | Informe spam
Con dicho query se obtienen los hijos pero no los nietos y demás
descendencia, con el tema mencionado arriba se resuelve esta cuestión.

Saludos y gracias Isaías.

"Isaías" wrote in message
news:235d301c45eca$df73ced0$
Hola

Para obtener la "raiz" o "Padre"

SELECT * FROM Persona WHERE id=idPadre
AND id = 2 Como ejemplo la persona 2

Para obtener todo su "arbol" o descendencia.

SELECT * FROM Persona WHERE id<>idPadre
AND idPadre = 2 Como ejemplo la persona 2

¿Cierto?
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida