O seguinte SCRIPT cria a tabela setor e insere dados em um ...

Próximas questões
Com base no mesmo assunto
Q835199 Banco de Dados

O seguinte SCRIPT cria a tabela setor e insere dados em um sistema gerenciador de banco de dados Postgresql.


create table setor (

codigo integer,

codigo_pai integer,

sigla varchar(30),

constraint setor_pk primary key (codigo),

constraint setor_fk foreign key (codigo)

references setor);


insert into setor values (1, null,

'Presidencia');

insert into setor values (2, 1, 'ST');

insert into setor values (3, 1, 'SCI');

insert into setor values (4, 3, 'COGES');

insert into setor values (5, 3, 'COEPA');

insert into setor values (6, 2, 'SGA');

insert into setor values (7, 6, 'COGED');

insert into setor values (8, 6, 'COGELIC');


Considerando essas informações, assinale a opção que apresenta a expressão SQL que representa o nível hierárquico de cada setor.

Alternativas

Comentários

Veja os comentários dos nossos alunos

Questão pra tomar tempo de prova. Só resolver se sobrar tempo

Quem não tem acesso:  - -> D

Pedir comentário do professor

1)primeira parte(caso base) -> with recursive org .... where codigo_pai is null => pega os setores que não são subordinados a ninguém, com esse conjunto inicial sendo chamado de org, inicializando o conjunto retornado pelo WITH

2)segunda parte(iterações) -> union all .. junção de setor (com alias o1) com org(representa os setores encontrados nas iterações anteriores, com alias o2) na condição de junção código do pai do setor atualmente sendo analisado = código dos setores atualmente no conjunto...

3)último SELECT => processa o conjunto retornado pelo with recursive

Funcionamento do WITH RECURSIVE:

Inicialização:

Pega apenas o setor 1 que não tem nenhum pai

{1}

Iteração 2

Pega setores 2 e 3, cujo pai é 1

{1,2,3}

Iteração 3

Pega setores 4,5,6 cujos pais são 3 e 2

{1,2,3,4,5,6}

Iteração 4:

Pega setores 7 e 8, cujo pai é 6

(1,2,3,4,5,6,7,8}

Iteração 5:

Não tem ninguém mais para adicionar, chegamos a um closure!!!

Resultado final: setores (1,2,3,4,5,6,7,8}

Pensei "putz... tem que ter um incremento em algum lugar, não?" nem acredito que deu certo kkkkkkk

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo