ComeçarComece de graça

Quem é meu supervisor?

Neste exercício, queremos obter o caminho do chefe no topo da hierarquia até os funcionários na base. Para isso, precisamos juntar as informações obtidas em cada passo em um único campo. Você pode fazer isso combinando os IDs usando CAST() para converter de número para string. Um exemplo é CAST(ID AS VARCHAR(MAX)) para converter ID do tipo número para o tipo char.

A tarefa agora é encontrar o caminho para os funcionários Chris Feierabend com ID=18 e Jasmin Mentil com ID=16 até o topo da organização. A saída deve ser assim: boss_first_level -> boss_second_level .... Devem ser selecionados os IDs dos funcionários, e não seus nomes.

Este exercício faz parte do curso

Consultas Hierárquicas e Recursivas no SQL Server

Ver curso

Instruções do exercício

  • Inicialize Path com o ID do supervisor (0) e a condição inicial da recursão.
  • Use UNION no membro âncora e defina os campos do membro recursivo (ID, Name, Supervisor).
  • Adicione o ID do supervisor Supervisor ao Path a cada passo.
  • Selecione os IDs dos funcionários Chris Feierabend e Jasmin Mentil na CTE.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

WITH employee_Hierarchy AS (
	SELECT
		ID, 
  		NAME,
  		Supervisor,
  		-- Initialize the Path with CAST
  		___('___' AS VARCHAR(MAX)) as Path
	FROM employee
	WHERE Supervisor = 0
	-- UNION the anchor query 
  	___ ALL
    -- Select the recursive query fields
	SELECT 
  		emp.___,
  		emp.___,
  		emp.___,
  		-- Add the supervisor in each step. CAST the supervisor.
        Path + '->' + ___(emp.___ AS VARCHAR(MAX))
	FROM employee emp
		INNER JOIN employee_Hierarchy
  		ON emp.Supervisor = employee_Hierarchy.ID
)

SELECT Path
FROM employee_Hierarchy
-- Select the employees Chris Feierabend and Jasmin Mentil
WHERE ___ = 16 OR ID = ___;
Editar e executar o código