2014-12-22 4:46 GMT-02:00 Wellington <[email protected]>:

> uma duvida: Por que o select abaixo, com campos de nomes iguais, nao gera
> erro ?
>
> SELECT campo1,
>               0::INT AS campo1
>   FROM tabela
>


Uma especificação do padrão SQL, e uma bem chata na minha opinião. Não é
erro num SELECT, mas numa tabela ou numa visão não será possível:

    postgres=# CREATE VIEW foo AS SELECT i AS campo1, 0 AS campo1 FROM
generate_series(1, 10) i;
    ERROR:  42701: column "campo1" specified more than once
    LOCATION:  MergeAttributes, tablecmds.c:1428

No caso acima se você usar essa consulta num ResultSet, não poderá acessar
os valores passando o nome, mas ainda conseguirá acessar usando a posição,
o que não é considerado uma boa prática, e logo também não é considerado
uma boa prática repetir o nome da coluna/apelido (ou "alias") num SELECT.

Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a