Consultas recursivas en SQL
A continuación se muestra como se pueden realizar consultas recursivas en SQL Server 2008, va el ejemplo.
------------------------------------------------------ -- Script para demostrar como se pueden realizar -- consultas recursivas en sql server 2008 -- escrito por Abel Chiola - 5 de diciembre de 2010 ------------------------------------------------------ --Seleccionamos nuestra base de datos de pruebas use pruebas go --Ahora vamos a crear y "sembrar" una tabla para la demo with empleados ( empleadoId, empleadoNombre, jefeId ) as ( select 1, 'Empleado 1', null union select 2, 'Empleado 1.2', 1 union select 3, 'Empleado 1.3', 1 union select 4, 'Empleado 1.2.1', 2 union select 5, 'Empleado 1.2.2', 2 union select 6, 'Empleado 1.2.1.1', 4 ) --Por último vamos a crear una CTE donde se produce la recursividad ,tablaArbol ( empleadoId, nombreEmpleado, jefeId, jefeNombre, nivel ) as ( --- Este es el miembro ancla, o sea el punto de partida select e.empleadoId, e.empleadoNombre, e.jefeId, e.empleadoNombre, 0 from empleados as e where e.jefeId is null --- cominacion union all --- Miembros recursivos select e2.empleadoId, e2.empleadoNombre, e2.jefeId, e3.empleadoNombre, nivel + 1 from empleados e2 join empleados e3 on e2.jefeId = e3.empleadoId join tablaArbol as tA on e2.jefeId = ta.empleadoId ) ---- Luego mostramos los el resultado select * from tablaArbol

Comentarios
muy bueno el script
Enviar un comentario nuevo