Analise o comando SQL a seguir. select n1.numero * 10 + n2.n...
select n1.numero * 10 + n2.numero x FROM NUMBERS n1, NUMBERS n2 where n2.numero = 9 - n1.numero + 1 order by n1.numero, n2.numero
Tomando por base a tabela NUMBERS, o resultado produzido pelo comando acima contém 9 linhas, ignorada a linha de títulos.
O número que aparece na quarta dessas nove linhas é o
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B - 46.
Para resolver essa questão, é preciso entender como opera o SQL (Structured Query Language), que é a linguagem padrão para gerenciar e manipular bancos de dados. No comando apresentado, a operação é uma consulta SELECT com uma condição específica de junção (JOIN) implícita entre duas instâncias da mesma tabela NUMBERS, representadas por n1 e n2.
O entendimento da questão exige o conhecimento sobre produto cartesiano, o qual ocorre quando duas tabelas são combinadas sem uma condição explícita de junção, e a aplicação de um filtro posterior na cláusula WHERE. A filtragem especificada pelo comando where n2.numero = 9 - n1.numero + 1
indica que apenas os pares de números onde a soma de n1.numero e n2.numero resulta 10 serão selecionados.
O cálculo realizado na seleção select n1.numero * 10 + n2.numero x
multiplica o valor de n1.numero por 10 e adiciona o valor de n2.numero. Portanto, para cada par de números que atende à condição da cláusula WHERE, um novo valor é calculado e incluído nos resultados.
Considerando que o resultado possui 9 linhas, e queremos identificar o número na quarta linha, é evidente que estamos considerando uma sequência ordenada, conforme indicado pelo ORDER BY. Isso sugere que a tabela NUMBERS contém pelo menos 5 números (de 1 a 5), pois se n1.numero fosse 5 na quarta linha, n2.numero seria 5 (10 - 5 + 1), resultando em 55 (5*10 + 5). No entanto, como a resposta correta é a alternativa B (46), isso significa que na quarta linha, n1.numero deve ser 4, e n2.numero deve ser 6 (10 - 4 + 1), resultando no cálculo 4*10 + 6 = 46.
Portanto, a lógica por trás da questão e a compreensão da estrutura da consulta SQL levam à conclusão de que a alternativa B (46) é a correta.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
GAB B
O "n2" tem que ser igual a "9 - n1 + 1"
Isso só vai acontecer quando tivermos o par (n2, n1) igual a:
(1, 9) = 9*10 + 1 = 91
(2, 8) = 8*10 + 2 = 82
(3, 7) = 7*10 + 3 = 73
(4, 6) = 6*10 + 4 = 64
(5, 5) = 5*10 + 5 = 55
(6, 4) = 4*10 + 6 = 46
(7, 3) = 3*10 + 7 = 37
(8, 2) = 2*10 + 8 = 28
(9, 1) = 1*10 + 9 = 19
Ordenando, o quarto elemento será "46"
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo