Questão nº 53

Questão de Tecnologia da Informação · CESGRANRIO BB 01/2022 (nº 53)

CESGRANRIO2022Escriturário - Agente de TecnologiaTecnologia da Informação
Gabarito: Dver comentário ↓

Uma empresa de investimentos financeiros busca identificar novas oportunidades de negócio para pessoas jurídicas, em especial dentre aquelas que têm como característica a adoção de governança ambiental, social e corporativa (conhecida como ESG, uma sigla em inglês).
Considere que existe um banco de dados nessa empresa com as seguintes tabelas (todas as chaves primárias são numéricas):

Empresa (CNPJ, razaoSocial, endereco)
Caracteristica (cod, sigla, nome)
Tem (CNPJ, cod)

Que comando SELECT do SQL retorna apenas o CNPJ e a razão social das empresas que não têm "ESG" como característica?

Resposta comentada

Gabarito Alternativa D

Conceito-chave: A consulta precisa retornar empresas que não possuem a característica ESG. Isso é diferente de retornar empresas que possuem outras características (que podem até ter ESG também). A forma segura é usar NOT IN (ou NOT EXISTS) com uma subconsulta que lista os CNPJs das empresas que têm ESG.

  • (A) Incorreta: A tabela Caracteristica não está no FROM, então a coluna Caracteristica.Sigla nem existe no escopo; além disso, <> 'ESG' retornaria empresas que têm outras características, mas não exclui as que também têm ESG.
  • (B) Incorreta: O JOIN com Tem filtra apenas empresas que têm alguma característica, e a condição WHERE Tem.cod = 'ESG' compara o código numérico com a string 'ESG' (errado, pois cod é chave numérica e sigla é o texto). Além disso, retornaria só as que têm ESG, não as que não têm.
  • (C) Incorreta: A condição C.nome <> 'ESG' retorna empresas que têm qualquer outra característica (ex.: "ISO"), mas não exclui as que também têm ESG. Uma empresa com ESG e ISO apareceria no resultado, o que é errado.
  • (D) Correta: A subconsulta SELECT T.CNPJ ... WHERE C.sigla = 'ESG' retorna todos os CNPJs que possuem a característica ESG. O NOT IN na consulta externa seleciona exatamente as empresas que não estão nessa lista, ou seja, as que não têm ESG — independente de terem outras características.
  • (E) Incorreta: O FROM Empresa, Tem é um produto cartesiano, e a condição Empresa.CNPJ = Tem.cod compara CNPJ com código de característica (tipos diferentes). Além disso, Tem.cod <> 'ESG' compara número com texto e não exclui empresas que têm ESG em outra linha.

Fonte: CESGRANRIO BB 01/2022 Escriturário - Agente de Tecnologia (Caderno Gabarito 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho