2011/2/7 Fábio Gibon - Comex System <[email protected]>:
> Hoje me deparei com uma situação que nunca tinha visto antes. Estava
> executando um comando SELECT numa tabela com uma cláusula ORDER BY em uma
> coluna do tipo CHARACTER (128). Existem 10 registros na tabela, onde os
> valores da coluna do ORDER BY são:
> “         1”
> “         2”
> “         3”
> “         4”
> “         5”
> “         6”
> “         7”
> “         8”
> “         9”
> “        10”
> Ao executar o comando aqui na empresa no postgres 9.0 me retorna os
> registros nesta mesma ordem.
> Mas ao executar o comando no cliente retorna numa ordem diferente:
> “         1”
> “        10”
> “         2”

<corte>

> Alguma idéia do porque isso pode estar acontecendo?

Está acontecendo o q vc pediu: ordene as *strings* de acordo com a
ordem e o seu COLLATE, especificamente a glibc ordena desta forma,
veja:

skynet:~ postgres$ cat arquivo_numerado  | sort
 1
 10
 2
 3

Se quer ordenar números, então deixe claro q está tratando com números:

SELECT numeros FROM tabela ORDER BY numeros::integer;

Abraço!

-Leo
-- 
Leonardo Cezar
http://postgreslogia.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a