Questão FC90555
A respeito dos conceitos de linguagem de definição e manipulação de dados (SQL), julgue o próximo item. Considere a tabela de colaboradores e o script SQL a seguir. id| nome |chefi
Linguagem SQL
CEBRASPE (CESPE) · 2022
Considere a tabela de colaboradores e o script SQL a seguir.
id| nome |chefia|
--+--------+------+
1 |Pedro | 2 |
2 |Maria | |
3 |Fernanda| 2 |
4 |Gabriela| 3 |
5 |Mariana | 3 |
with recursive cola (id, nome, chefia ) as (
SELECT id, nome, chefia
FROM colaborador c1
where chefia is null
union all
SELECT c1.id, c1.nome, c1.chefia
FROM colaborador c1, cola c2
where c1.chefia = c2.id
)
select * from cola
Nesse caso, executando-se a expressão SQL, tem-se o seguinte resultado.

Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
Comentário:
Análise da Tabela e dos Dados
A tabela
colaboradores contém os seguintes dados:
chefia indica qual colaborador é chefe de outro.id = 2) é a única que não possui chefia (NULL), indicando que ela está no topo da hierarquia.Entendendo a Consulta SQL
A consulta utiliza uma CTE recursiva chamada
cola para encontrar a hierarquia dos colaboradores.- Primeira parte da CTE (
SELECT ... WHERE chefia IS NULL)- Seleciona os colaboradores que não possuem chefia (nível mais alto da hierarquia).
- No caso, apenas Maria (
id = 2).
- Segunda parte da CTE (recursão
UNION ALL)- Junta a tabela
colaboradoresconsigo mesma (JOINentrec1ec2) para encontrar os colaboradores que são subordinados aos chefes já encontrados. - Isso acontece repetidamente até que todos os níveis da hierarquia sejam resolvidos.
- Junta a tabela
- Execução da CTE
- A recursão preenche os níveis de chefia e gera o seguinte resultado:

Conteúdo do catálogo FC Concursos · Atualizado em