1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Duvida simples de sintaxe de SQL

Discussão em 'Programação' iniciada por Freek1ll, 4 de Novembro de 2012. (Respostas: 4; Visualizações: 681)

  1. Freek1ll

    Freek1ll Power Member

    Boas, comecei recentemente a aprender SQL mas tenho uma dúvida sobre o "AS" que não consigo esclarecer na net.

    Encontro exemplos como este:
    Código:
    SELECT S.sname, S.rating+1 AS ratingFROM Sailors S, Reserves R
    
    E outros como:
    Código:
    SELECT B.color
    FROM Sailors AS S, Reserves AS R, Boats AS B
    Pelo que percebi no campo FROM pode-se omitir a keyword AS e por somente o nome da tabela e uma abreviatura.
    No entanto não se podia fazer isso também no campo SELECT?
    A ficar "S.rating+1 rating" em vez de "S.rating+1 AS rating"
     
  2. tkm_[pt]

    tkm_[pt] Power Member

    Sim, a clausula "AS" é simplesmente usada para renomear os campos ou tabelas para ser mais fácil de identificar no resultado final.

    No teu caso, se não usasses a clausula "AS" as tuas colunas seriam: "S.Name" e "S.rating+1".
     
  3. tripas

    tripas To fold or to FOLD?

    E que tal indicar qual é a versão do SQL que anda a utilizar? Ou quem é suposto ajuda-lo deve adivinhar se esta a usar Oracle, MySql, DB2, SQL Server, ou outra coisa?
     
  4. Freek1ll

    Freek1ll Power Member

    Penso que me explquei um pouco mal.
    Queria saber se podia escrever "SELECT S.rating+1 rating" em vez de "SELECT S.rating+1 AS rating" do mesmo modo que escrevo "FROM Sailors S" em vez de "FROM Sailors AS S"


    PostgreSQL
     
  5. _coelhinha_

    _coelhinha_ Power Member

    Cálculo que PostgreSQL funcione como SQL e como tal, respondendo à tua questão.. não, não podes. O AS funciona como uma espécie de atribuição, o que nesse caso estás a dizer é que o valor de S.rating+1 vai ser "guardado" no rating.

    Código:
    SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
        * | expression [ AS output_name ] [, ...]    [ FROM from_item [, ...] ]    [ WHERE condition ]    [ GROUP BY expression [, ...] ]    [ HAVING condition [, ...] ]    [ { UNION | INTERSECT | EXCEPT } [ ALL ] select ]    [ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ]    [ LIMIT { count | ALL } ]    [ OFFSET start ]    [ FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT ] [...] ]
    
    
     

Partilhar esta Página