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 <[email protected]>
> 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 <[email protected]>
>
>> 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
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> 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
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral