¿Hay una cláusula equivalente a CONNECT BY de Oracle en SQL Server. El requisito para construir un árbol de categoría usando un campo parentId.ORACLE Connect by cláusula equivalente en SQL Server
5
A
Respuesta
8
El equivalente SQL Server 2005+ de la sintaxis de consulta jerárquica CONNECT BY
de Oracle es usar un CTE recursivo. SQL Server 2008 agregó HierarchyID. He aquí un ejemplo de una CTE recursiva:
WITH EmployeeHierarchy (EmployeeID, LastName, FirstName, ReportsTo, HierarchyLevel) AS (
SELECT EmployeeID,
LastName,
FirstName,
ReportsTo,
1 as HierarchyLevel
FROM Employees
WHERE ReportsTo IS NULL
UNION ALL
-- Recursive step
SELECT e.EmployeeID,
e.LastName,
e.FirstName,
e.ReportsTo,
eh.HierarchyLevel + 1 AS HierarchyLevel
FROM Employees e
JOIN EmployeeHierarchy eh ON e.ReportsTo = eh.EmployeeID)
SELECT *
FROM EmployeeHierarchy
ORDER BY HierarchyLevel, LastName, FirstName
googlear "jerárquica CTE" y/o "CTE recursiva" a su vez por numerosos resultados. Tomé la consulta de ejemplo del 4GuysFromRolla.com.
Los CTE recursivos ahora son estándares ANSI: la sintaxis no era compatible hasta Oracle 11g, según tengo entendido.
1
Hay HierarchyID tipo de datos en MS SQL Server 2008, que pueden hacer su vida más fácil.
+0
+1 para la madrugada :) – zapping
Cuestiones relacionadas
- 1. Cláusula ORDER BY de SQL Server en la subconsulta
- 2. cláusula de Oracle CONNECT BY después de la cláusula GROUP BY
- 3. alternativa estándar a CONNECT BY?
- 4. ¿Se respeta ORDER BY en las vistas de SQL Server?
- 5. SQL Server: dinámico, donde cláusula
- 6. Instrucción IF en ORDEN BY Cláusula de una instrucción SELECT en un SQL Server Procedimiento almacenado
- 7. SQL Server OFFSET equivalente
- 8. Hashset equivalente en SQL Server
- 9. Connect en Oracle SQL
- 10. SQL Server: Diferencia entre PARTITION BY y GROUP BY
- 11. ORDER BY en una vista Sql Server 2008
- 12. SQL Server 2005 ROW_NUMBER() sin ORDER BY
- 13. Equivalente a la cláusula SQL IN
- 14. SQL Server: cláusula GROUP BY para obtener valores separados por comas
- 15. No se puede utilizar la cláusula ORDER BY por ruta XML correctamente (SQL Server)
- 16. SQL Server 2005 ORDER BY con una expresión
- 17. ¿equivalente StyleCop para SQL Server?
- 18. ¿Qué significa la cláusula de SQL "GROUP BY 1"?
- 19. fila SQL comas separar con cláusula GROUP BY
- 20. Sql server DELETE and WITH cláusula
- 21. SQL Server - cláusula IN con múltiples campos
- 22. Uso de "Con cláusula" SQL Server 2008
- 23. Cláusula de SALIDA de SQL Server
- 24. SQL Server identificador único equivalente en C#
- 25. GROUP BY en ACTUALIZACIÓN DE cláusula
- 26. Combinación de ORDER BY AND UNION en SQL Server
- 27. Oracle equivalente a SQL Server incluía columnas para indexar
- 28. Ordenar resultados de SQL Server por la cláusula IN
- 29. GRUPO BY la consulta ignora la cláusula ORDER BY
- 30. SQL Server - USE existe cláusula en Dónde y Seleccionar
thx para los enlaces y la muestra. – zapping