SóProvas


ID
1789153
Banca
CESPE / CEBRASPE
Órgão
TJ-DFT
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de linguagens de definição e manipulação de dados, julgue o item subsecutivo.

Apelido ou column alias não pode ser utilizado na cláusula WHERE.

Alternativas
Comentários
  • Gabarito definitivo? Até onde eu sei, pode. Ex:


    SELECT prof.nome

    FROM PROFESSORES prof

    WHERE prof.idade > 55

  • Inclusive o Aliás de nome de coluna pode ser usado.
  • SELECT NOME N

    FROM TESTE

    WHERE N LIKE '%MARIA%'


    Não é permitido. Me corrijam se eu estiver errado.

  • Acredito que sim. Pois é o alias que é tradado na questão é referente ao  NOME DA COLUNA e NÃO o alias para NOME DA TABELA.

    Beijamin, você está usando o alias para apelidar o nome da tabela e não da coluna.

    Eu nunca vi uso prático de um alias ser usado como nome de coluna. Sempre usei para nomear tabelas. Mas seguindo a lógica apontada por Silas, parece coerente. Pelo menos no pl-sql não é permitido não sei em outros bancos. Como se trata de "linguagENS" de manipulação de dados. Se houver 1 que permita muda a resposta da questão. Mas pelo que me parece, não é permitido em âmbito geral.

  • Entendi Paulo, passei batido nesse detalhe. Valeu.

  • Acredito que o autor queria dizer que não se pode definir um "AS" após a cláusula WHERE. porque o apelido é definido antes do WHERE, porém pode-se usar o apelido desde que tenha sido definido antes"essa seria a logica". enfim da forma como está definido o argumento da questão, usar um apelido na cláusula não é possível. os exemplos disponíveis na internet estão relacionados aos apelidos de tabela e não de coluna, porém há exemplos de definição do apelido de coluna. se é possível definir, por que não será possível usa-los ?

  • Como não foi dito nada em relação a produto SGBD, creio que está se utilizando o ANSI. Nesse caso, olhem esse artigo:

    http://www.itnerante.com.br/profiles/blogs/d-vidas-sql-fgv-parte-4-de-9999
    De acordo com o Eduardo, no caso de ANSI,  o alias (apelido) só pode ser utilizado no contexto do order by
  • Pessoal, a cláusula FROM é a primeira instrução a ser processada em um comando SQL. A última é a cláusula SELECT como mostrada na sequencia abaixo. Por isso que não podemos usar alias de coluna na cláusula WHERE, pois o engine do banco ainda não processou as colunas do SELECT. (isso para o SQL SERVER. Creio que nos demais bancos seja assim também).

    1 - FROM
    2 - WHERE
    3 - GROUP BY
    4 - HAVING
    5 - SELECT

  • pode sim


    SELECT CustomerName, Country C FROM Customers

    WHERE C='Mexico';


    se quiserem testar:

    https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_where

  • Questão deixa a desejar ao se falar em USAR - não pode ser utilizado.

    Apelido ou column alias não pode ser utilizado na cláusula WHERE.

    Pode sim. O que não se pode é CRIAR um alias no WHERE. Usar claro que podemos, desde que não seja um ALIAS oriundo de um SELECT. Copiarei o exemplo do colega Benjamim:

    SELECT prof.nome

    FROM PROFESSORES prof

    WHERE prof.idade > 55

    Comando perfeitamente válido. O problema é que quem faz a questão não conhece SQL e copia um texto fora de contexto de algum livro. Certamente esse trecho do livro se referia a um SELECT ou usava a palavra CRIAR...

    Cuidado para não desaprenderem com esse tipo de questão. Melhor errar essa e manter o conhecimento correto para não errar na prova.

    Poderíamos ir além para ANULAR ou mudar o gabarito. Seria possível sim criar um ALIAS em um WHERE através de um SUBQUERY por exemplo:

    SELECT prof.nome

    FROM PROFESSORES prof

    WHERE prof.idade > 55 and prof.formacao IN (SELECT form.nome FROM FORMACAO form)

  • Usado pode. Nâo pode ser é criado!!! O seguinte código rodou de boa no Oracle18c.

    SELECT * FROM pessoa p -- aqui criei o ALIAS "p"

    WHERE p.cpf > 1 -- Aqui, no WHERE, usei o alias "p"

    Capotaria de voadeira com recurso nessa questão!!!