Interessante... e agora fui dar uma olhada em 2 instalações do postgresql que tenho aqui na empresa e rodando o SQL mencionado tive os seguintes resultados:
1) Servidor com encoding LATIN1, LC_COLLATE = pt_BR, LC_CTYPE = pt_BR dbsel...@servidor:~$ uname -a Linux servidor 2.6.20-15-server #2 SMP Sun Apr 15 07:41:34 UTC 2007 i686 GNU/Linux postgres=# select 'PRODUTO 1,00 MM2' postgres-# UNION ALL postgres-# select 'PRODUTO 10,00 MM2' postgres-# ORDER BY 1; ?column? ------------------- PRODUTO 10,00 MM2 PRODUTO 1,00 MM2 (2 registros) postgres=# select version(); version ----------------------------------------------------------------------------------------------- PostgreSQL 8.1.8 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu3) (1 registro) 2) Servidor com encoding LATIN1, LC_COLLATE = pt_BR.ISO-8859-1, LC_CTYPE = pt_BR.ISO-8859-1 dbsel...@dbseller-note07:/var/www$ uname -a Linux dbseller-note07 2.6.27-11-generic #1 SMP Thu Jan 29 19:24:39 UTC 2009 i686 GNU/Linux postgres=# select 'PRODUTO 1,00 MM2' postgres-# UNION ALL postgres-# select 'PRODUTO 10,00 MM2' postgres-# ORDER BY 1 postgres-# ; ?column? ------------------- PRODUTO 1,00 MM2 PRODUTO 10,00 MM2 (2 registros) postgres=# select version(); version ---------------------------------------------------------------------------------------------- PostgreSQL 8.1.11 on i486-pc-linux-gnu, compiled by GCC gcc-3.4 (GCC) 3.4.6 (Debian 3.4.6-5) (1 registro) Lembro de há algum tempo atrás ter visto que existia (ou ainda existe) um bug na glibc referente a ordenação e uma solução para o problema conforme o link abaixo... não seria esse o problema? http://listas.postgresql.org.br/pipermail/pgbr-dev/2006-October/000217.html Agora, por falta de tempo, não fiz mais testes, mas numa das minhas instalações (a que fez a ordenação conforme desejado) eu fiz a alteração mencionada no link... 2009/2/26 Adriano Espinoza de Oliveira <adrianoespin...@gmail.com> > Como tem 2 espaços na frente do 1,00 a ordem apresentada esta correta, como > é um string, o " " vem antes do numero 1 da linha que tem 10,00Adriano > > > 2009/2/26 Edson Mundin Ferreira <edson.mun...@uol.com.br> > >> Estou com problema de ordenação no Postgresql >> >> >> veja exemplo: >> >> *select 'PRODUTO 1,00 MM2' >> UNION ALL >> select 'PRODUTO 10,00 MM2' >> ORDER BY 1 >> * >> apresentada da seguinte forma: >> * >> "PRODUTO 10,00 MM2" >> "PRODUTO 1,00 MM2" >> * >> quando deveria ser: >> >> *"PRODUTO 1,00 MM2" >> "PRODUTO 10,00 MM2" >> * >> observar que há 2 espaços antes do 1,00 >> >> estou usando postgresql instalado no linux fedora versão: >> >> *"PostgreSQL 8.1.9 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) >> 4.1.1 20070105 (Red Hat 4.1.1-51)" >> >> *os comandos foram executados a partir do pgadmin 1.8.4 versão para >> windows >> >> Agradeço a ajuda >> >> Édson >> >> >> >> >> _______________________________________________ >> pgbr-geral mailing list >> pgbr-geral@listas.postgresql.org.br >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> >> > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > -- Fabrízio de Royes Mello >> Blog sobre PostgreSQL: http://fabriziomello.blogspot.com
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral