Questão de Banco de Dados — PL-SQL — FCC 2018
- Código
- fc045902
- Banca
- FCC
- Órgão
- MPE-PE
- Ano
- 2018
- Cargo
- Analista Ministerial - Informática
- AArmando
- BArmandoSilvioPedroOlavo
- CNULL
- DArmandoOlavoPedroSilvio
- ESilvio
GabaritoE — Silvio
Gabarito: letra E. A função GREATEST retorna o maior valor dentre os argumentos fornecidos, conforme comparação lexicográfica (ordem alfabética) para strings. Na lista 'Olavo', 'Pedro', 'Silvio', 'Armando', a ordem alfabética crescente é: 'Armando', 'Olavo', 'Pedro', 'Silvio'. Portanto, o maior é 'Silvio'.
O Oracle 12c compara strings caractere por caractere, baseando-se na ordem de collation (por padrão, binária ou linguística dependendo da configuração). O resultado é sempre um único valor — o máximo do conjunto — e não uma lista ordenada.
'Armando' é o menor valor lexicográfico, não o maior. A banca pode induzir o candidato a confundir GREATEST com LEAST (que retorna o menor).
Exibe os nomes em ordem crescente (um por linha). GREATEST não retorna múltiplas linhas nem ordena a lista: retorna um único valor.
NULL só seria retornado se todos os argumentos fossem NULL ou se a lista estivesse vazia. Como há quatro strings não nulas, o resultado é uma string não nula.
Assim como a B, apresenta uma lista (agora em ordem decrescente). GREATEST não produz saída multivalorada.
'Silvio' é o último termo na ordenação alfabética crescente, portanto o maior. A função GREATEST é frequentemente usada em expressões SQL para obter o máximo entre colunas ou valores literais.
O candidato pode pensar em ordem alfabética inversa (A como maior) ou confundir com a função LEAST. GREATEST sempre retorna o último na ordem crescente padrão. Treine com exemplos: GREATEST('a','b') → 'b'; GREATEST('10','2') → '2' (comparação textual, não numérica).
Gabarito: letra E — 'Silvio'.
Link permanente: /questoes/fc045902