Duvida simples de sintaxe de SQL

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"
 
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".
 
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?
 
tkm_[pt];9601505 disse:
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".
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"


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?

PostgreSQL
 
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 ] [...] ]
 
Back
Topo