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

Responder a