SóProvas


ID
720595
Banca
ESAF
Órgão
CGU
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

- Uma subquery (subconsulta) é um comando SELECT que foi “embutido” em outro comando SELECT, UPDATE, DELETE ou dentro de outra subquery. A finalidade da subquery é retornar um conjunto de linhas para a query (consulta) ou comando principal. Com relação às subqueries, é correto afirmar que

Alternativas
Comentários
  • Essa questão possui duas afirmativas corretas. Letra E conforme gabarito e a letra C. Sei que podemos utilizar a cláusula order by em subquerys nos bancos oracle e mysql. Questão anulável!
    a) ERRADA, uma subquery precisa estar entre parêntesis, caso contrário teremos um erro de sintaxe SQL.
    b) ERRADA, deve estar sempre do lado direito do operador de comparação, caso contrário teremos um erro de sintaxe SQL.
    c) CORRETA, pode conter sem problema a cláusula order by. Pode também conter cláusulas Group By e Having.
    d) ERRADA, Pelo contrário, a utilização do operador IN é feita para realizar comparações com subquerys que retornem múltiplas linhas
    e) CORRETA, O operador "=" não pode ser usado em uma consulta que contenha uma subquery que retorne multiplas linha.
  • Afinal, qual a resposta correta?
    Eu respondi C, mas o site diz que a correta é a letra E.

    Outra pessoa ja afirma que C está certa, e agora quem corrige?
  • Alguns bancos aceitam o ORDER BY dentro da subquerie, outros n e outros precisam colocar TOP pra que o SGBD possa reconhecer esse order by. Mesmo assim ainda concordo contigo amigo pra mim é verdadeira :D
  • Leonel, qual a fonte utilizada na sua resposta
  • O certo mesmo é letra E. No SQL padrão ANSI, Order by não pode ser utilizado em uma subconsulta.

  • A: A alternativa diz: ... não precisa ..., porém toda subquery deve estar incluída entre parênteses para se diferenciar da consulta principal. É recomendado a utilização de um Alias para a subquery logo após o parênteses, facilitando assim a sua identificação.

    B: A alternativa diz: ...sempre deve estar do lado esquerdo ...*, porém, não faz diferença para o resultado da consulta se a subquery esta a esquerda ou a direita do operador de comparação.

    C: A Alternativa diz: ...pode conter order by*, porém uma subquery não pode a cláusula order by. Caso seja necessário, a cláusula deve ser movida para a consulta principal.

    D: A Alternativa diz ... não pode ser utilizado em uma subquery ...* porém o operador IN pode ser utilizado em uma subquery que retorna múltiplas linhas.

    Fonte: https://www.devmedia.com.br/subqueries-questoes-de-concurso-resolvidas/40159