En Oracle existe la setencia START WITH and CONNECT BY, de manera que se puede hacer

SELECT child, parent, level
FROM  Prueba
START WITH parent is null
  CONNECTED BY PRIOR child = parent;
En SQL como sintaxis equivalente tenemos:
WITH Empleados (EmployeeID, ManagerID, Level)
AS
 (
 SELECT EmployeeID, ManagerID, 1
 FROM HumanResources.Employee
 WHERE ManagerID IS NULL
 UNION ALL
 SELECT Employee.EmployeeID, Employee.ManagerID, Empleados.Level+1
 FROM HumanResources.Employee
 JOIN Empleados
 ON Empleados.EmployeeID=Employee.ManagerID
 )
SELECT * FROM Empleados
0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like

UNPIVOT “SINCRONO”

Más de una vez nos hemos encontrado en la situación de tener que unpivotar una tabla, teniendo así que recurrir o bien al componente “Unpivot” de SSIS o incluso a tener que guardar los datos en tabla y realizar posteriormente una lectura de esta misma utilizando T-SQL para unpivotarla, con los problemas que ambas soluciones nos puedan conllevar con un gran volumen de datos.