SóProvas


ID
2984650
Banca
CS-UFG
Órgão
IF Goiano
Ano
2019
Provas
Disciplina
Banco de Dados
Assuntos

Em um banco de dados de empregados, no qual existem vários empregados com salários distintos entre si, o comando SQL que retorna os empregados cujo salário é inferior ao maior salário existente é:

Alternativas
Comentários
  • A questão pede: "o comando SQL que retorna os empregados cujo salário é inferior ao maior salário existente"

    Sabendo disto já eliminamos a alternativa A e a alternativa C, pois as mesmas retornam um valor maior que o valor comparado;

    Sabendo que a cláusula ALL, na questão, retornará o valor inferior menor que TODOS os valores informados na lista (select salario from empregado). Podemos ler a cláusula ALL como: o valor deve ser menor que o menor valor da lista informada

    Por sua vez a claúsula ANY, na questão, retornará o valor inferior menor que o maior valor informado na lista (select salario from empregado). Validando assim o GABARITO DA QUESTÃO ALTERNATIVA D;

    Obs.: Por eliminação conseguimos 'matar' a questão, porém para deixa-la 'perfeitamente perfeita' o examinador deveria usar um ORDER BY com um DESC ao final para garantir a ordenação, assim teríamos a certeza que o maior valor ficaria no top! ( Se cometi algum erro na observação por favor me mandem uma mensagem)

  • Segundo Celso Oliveira (página 155), "Não coloque a cláusula ORDER BY em uma subquery. Não esqueça que deve haver apenas uma cláusula ORDER BY em todo comando SELECT. Logo, se for necessário ordenar o resultado, faça isso no SELECT principal".

    Creio que para comparar com o maior salario deveria ser:

    select * from empregado where salario < any (select max(salario) from empregado)

  • Questão bem feita.