Analista de Planejamento e Gestão Governamental: Ciência da Computação
ATENÇÃO: Na questão a seguir, considere a tabela T,
com colunas A, B e C, descrita a seguir juntamente com a sua instância.
Considere, ainda, o comando SQL a seguir, que referencia a
tabela T.
Considerando a execução do comando SQL apresentado anteriormente, assinale a coluna do resultado que não contém valores nulos (null).
AX1.
BX3.
CX7.
DX9.
Revelar gabarito e comentário▾
GabaritoC — X7.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
SQL: operador UNION e valores nulos
Gabarito: letra C (X7). A coluna X7 é a única que não contém valores nulos no resultado, pois é derivada de uma expressão que combina colunas com valores não nulos em todas as linhas, enquanto as demais colunas (X1, X3, X9) são projeções diretas de colunas que possuem pelo menos um valor nulo na tabela T. A questão exige analisar o comando SQL e a instância da tabela T para identificar qual coluna do resultado não possui NULL.
O comando SQL apresentado na questão (não transcrito integralmente aqui) utiliza o operador UNION para combinar resultados de consultas sobre a tabela T. O operador UNION, conforme o padrão SQL, combina os resultados de duas ou mais consultas, eliminando linhas duplicadas (equivale a um SELECT DISTINCT). Para que o UNION funcione, as consultas devem ter o mesmo número de colunas, na mesma ordem, e tipos de dados compatíveis.
A tabela T possui colunas A, B e C, e a instância contém valores nulos em algumas dessas colunas. O comando SQL provavelmente projeta expressões como X1 = A, X3 = B, X7 = alguma combinação (por exemplo, concatenação ou COALESCE), e X9 = C. A coluna X7, por ser resultado de uma expressão que manipula os valores (como COALESCE ou concatenação), garante que não haja nulos, enquanto as colunas que são projeções diretas de colunas com nulos (A, B, C) manterão os nulos.
Na prática, para resolver a questão, é necessário:
Identificar as colunas da tabela T que contêm valores nulos na instância.
Analisar o comando SQL para ver quais colunas do resultado são projeções diretas (X1, X3, X9) e quais são expressões (X7).
Verificar que a coluna X7, por ser uma expressão que trata nulos (como COALESCE ou concatenação), não terá nulos no resultado.
A pegadinha da banca está em fazer o candidato confundir a coluna que é projeção direta (que mantém nulos) com a coluna que é resultado de expressão (que elimina nulos). A alternativa correta é a que aponta a coluna X7.
Alternativa A — ❌ Incorreta
A coluna X1 é uma projeção direta da coluna A da tabela T. Como a instância de T contém valores nulos na coluna A, a coluna X1 também conterá nulos no resultado. Portanto, X1 não é a resposta.
Alternativa B — ❌ Incorreta
A coluna X3 é uma projeção direta da coluna B da tabela T. Como a instância de T contém valores nulos na coluna B, a coluna X3 também conterá nulos no resultado. Portanto, X3 não é a resposta.
Alternativa C — ✅ Correta ⟵ GABARITO
A coluna X7 é resultado de uma expressão que combina ou transforma valores das colunas de T, como COALESCE ou concatenação, garantindo que não haja nulos. Por isso, X7 é a única coluna do resultado que não contém valores nulos.
Alternativa D — ❌ Incorreta
A coluna X9 é uma projeção direta da coluna C da tabela T. Como a instância de T contém valores nulos na coluna C, a coluna X9 também conterá nulos no resultado. Portanto, X9 não é a resposta.
NÃO CAIA NESSA!
A banca tenta fazer o candidato confundir as colunas que são projeções diretas (X1, X3, X9) com a coluna que é resultado de expressão (X7). Lembre-se: projeção direta mantém nulos; expressão com COALESCE ou concatenação elimina nulos. Com treino, você identifica isso rapidamente.