FC ConcursosFC Concursos

Questão FC295883

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?

Linguagem SQL

CESGRANRIO · 2023

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?

  1. SELECT *

         FROM Empresa

         WHERE Caracteristica.Sigla <> 'ESG'

  2. SELECT E.CNPJ, E.razaoSocial

         FROM Empresa E

         JOIN Tem T ON (E.CNPJ = T.CNPJ)

         WHERE Tem.cod = 'ESG'

  3. SELECT E.CNPJ, E.razaoSocial

         FROM Empresa E

        JOIN Tem T ON (E.CNPJ = T.CNPJ)

        JOIN Caracteristica C ON (C.cod = T.cod)

        WHERE C.nome <> 'ESG'

  4. SELECT E.CNPJ, E.razaoSocial

         FROM Empresa E

         WHERE E.CNPJ NOT IN (

              SELECT T.CNPJ

              FROM Tem T

             JOIN Caracteristica C ON (T.cod = C.cod)

             WHERE C.sigla = 'ESG'

          )

  5. SELECT Empresa.*

         FROM Empresa, Tem

         WHERE Empresa.CNPJ = Tem.cod

         AND Tem.cod <> 'ESG'

Mostrar resposta e comentário

Gabarito

D

Comentário do professor

A consulta principal usa SELECT para retornar CNPJ e razaoSocial da tabela Empresa e aplica o predicado NOT IN sobre uma subquery. Assim, só permanecem no resultado as empresas cujo CNPJ não aparece no conjunto produzido pela subquery.

A subquery é: SELECT T.CNPJ FROM Tem T JOIN Caracteristica C ON (T.cod = C.cod) WHERE C.sigla = 'ESG'. Ela realiza um JOIN entre Tem e Caracteristica pelo campo cod e filtra por 'ESG' na coluna sigla, retornando todos os CNPJs associados à característica ESG.

Finalmente, o uso de NOT IN na consulta externa exclui esses CNPJs, entregando apenas as empresas que não possuem a característica ESG. Os aliases E, T e C deixam a consulta clara e referenciam corretamente as colunas necessárias.

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

Continue aprendendo