Re: [pgbr-geral] Ordenação

2011-11-24 Por tôpico Paulo Nievierowski

Em 24/11/2011 18:44, JotaComm escreveu:
> Estranho.. Qual o locale e codificação que você está usando?
>
psql -l
> Codificação  UTF8,  Collation  pt_BR.UTF-8,  CType   pt_BR.UTF-8
> Tem um exemplo do erro que deu?
Erro não; apenas não surtiu efeito: ou seja, resultou ignorando o asterisco
SELECT * FROM nomes ORDER BY nome='LORENA' DESC,nome ASC;
>  ANA, IVA, *LORENA, MARIA...

mas colocando o asterisco em LORENA no ORDER BY, funcionou:
SELECT * FROM nomes ORDER BY nome='*LORENA' DESC,nome ASC;
> *LORENA, ANA, IVA, MARIA...

testei colocando asterisco em MARIA também e o resultado foi:
SELECT * FROM nomes ORDER BY substr(nome,1,1) ASC, nome ASC;
> *LORENA, *MARIA, ANA, IVA...

colocando um espaço em branco em MARIA:
>  MARIA, *LORENA, ANA, IVA

Obs: os resultados são em coluna; apenas aqui apresentei em linha

Abração

Paulo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ordenação

2011-11-24 Por tôpico JotaComm
Opa,

Em 24 de novembro de 2011 18:13, Paulo Nievierowski  escreveu:

> JotaComm
> >
> > SELECT * FROM nomes ORDER BY nome='LORENA' DESC,nome ASC;
> > --
> > JotaComm
> > http://jotacomm.wordpress.com
>
> Testei como você sugeriu e não deu o resultado esperado; mas o modelo
> funcionou se o nome estivesse com o asterisco (*LORENA);
> Mas isso pressupõe conhecimento prévio do nome, digamos, especial. Então
> fiz alguns testes e obtive o esperado com a seguinte sintaxe:
>

Estranho.. Qual o locale e codificação que você está usando?

Tem um exemplo do erro que deu?

>
> SELECT * FROM nomes ORDER BY substr(nome,1,1) ASC, nome ASC;
>
> Valeu gente!
>
> Paulo
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>

Abraços

-- 
JotaComm
http://jotacomm.wordpress.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ordenação

2011-11-24 Por tôpico Paulo Nievierowski
JotaComm
>
> SELECT * FROM nomes ORDER BY nome='LORENA' DESC,nome ASC;
> -- 
> JotaComm
> http://jotacomm.wordpress.com

Testei como você sugeriu e não deu o resultado esperado; mas o modelo 
funcionou se o nome estivesse com o asterisco (*LORENA);
Mas isso pressupõe conhecimento prévio do nome, digamos, especial. Então 
fiz alguns testes e obtive o esperado com a seguinte sintaxe:

SELECT * FROM nomes ORDER BY substr(nome,1,1) ASC, nome ASC;

Valeu gente!

Paulo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ordenação

2011-11-24 Por tôpico Daniel Cristian Cruz
Em 24 de novembro de 2011 17:54, Guimarães Faria Corcete DUTRA,
Leandro  escreveu:
> 2011/11/24 JotaComm :
>>
>> SELECT * FROM nomes ORDER BY nome='LORENA' DESC,nome ASC;
>
> Vivendo e aprendendo…

E o barato é que se aplica ao grupo que inicia com *:

SELECT * FROM nomes ORDER BY nome LIKE '*%' DESC,nome ASC;

Jota, essa você tinha que ter apresentado nos 5 minutos do PGBR2011...

-- 
Daniel Cristian Cruz
クルズ クリスチアン ダニエル
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ordenação

2011-11-24 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/11/24 JotaComm :
>
> SELECT * FROM nomes ORDER BY nome='LORENA' DESC,nome ASC;

Vivendo e aprendendo…
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ordenação

2011-11-24 Por tôpico JotaComm
Olá,

Em 24 de novembro de 2011 15:37, Paulo Nievierowski  escreveu:

> Olá,
>
> Tenho uma lista de nomes, apresentada em ordem alfabética, tal qual:
> ANA, IVA, LORENA, MARIA...
> mas preciso que LORENA, por uma necessidade especial, seja a primeira da
> lista e precedo este com um asterisco:
> Logo, espero que resulte: *LORENA, ANA, IVA, MARIA...
> Bem, assim funcionava com LATIN1, mas com UTF8, parece que é
> simplesmente ignorado:
> ANA, IVA, *LORENA, MARIA...
> Qual seria a solução?
>

Veja se ajuda você:

SELECT * FROM nomes ORDER BY nome='LORENA' DESC,nome ASC;

>
> PG 8.4.9  em Linux Mandriva
> #psql -l
> # Codificação  UTF8,  Collation pt_BR.UTF-8,  CType pt_BR.UTF-8;
> Já tentei
> set client_encoding to 'latin-1' ,  to 'win1252' e o resultado é o mesmo.
>
> Paulo
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>


Abraços
-- 
JotaComm
http://jotacomm.wordpress.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ordenação

2011-11-24 Por tôpico Dickson S. Guedes
Em 24-11-2011 15:53, Guimarães Faria Corcete DUTRA, Leandro escreveu:
> 2011/11/24 Paulo Nievierowski:
>>
>> Bem, assim funcionava com LATIN1, mas com UTF8, parece que é
>> simplesmente ignorado:
>> ANA, IVA, *LORENA, MARIA...
>> Qual seria a solução?
>
> Ou defines outro atributo, por exemplo chamado prioridade, que seria a
> solução correta; ou defines uma nova ordenação no sistema operacional,
> para o PostgreSQL usar.

Ou faz um no ORDER BY mais ou menos com um CASE nome WHEN 'LORENA' THEN 
'A' ELSE nome END.


-- 
Dickson S. Guedes
mail/xmpp: gue...@guedesoft.net - skype: guediz
http://guedesoft.net - http://www.postgresql.org.br
http://github.net/guedes - twitter: @guediz
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ordenação

2011-11-24 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2011/11/24 Paulo Nievierowski :
>
> Bem, assim funcionava com LATIN1, mas com UTF8, parece que é
> simplesmente ignorado:
> ANA, IVA, *LORENA, MARIA...
> Qual seria a solução?

Ou defines outro atributo, por exemplo chamado prioridade, que seria a
solução correta; ou defines uma nova ordenação no sistema operacional,
para o PostgreSQL usar.


> # Codificação  UTF8,  Collation pt_BR.UTF-8,  CType pt_BR.UTF-8;
> Já tentei
> set client_encoding to 'latin-1' ,  to 'win1252' e o resultado é o mesmo.

Sim, porque não é uma questão de codificação, mas de ordenação (/collation/).
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Ordenação

2011-11-24 Por tôpico Paulo Nievierowski
Olá,

Tenho uma lista de nomes, apresentada em ordem alfabética, tal qual:
ANA, IVA, LORENA, MARIA...
mas preciso que LORENA, por uma necessidade especial, seja a primeira da 
lista e precedo este com um asterisco:
Logo, espero que resulte: *LORENA, ANA, IVA, MARIA...
Bem, assim funcionava com LATIN1, mas com UTF8, parece que é 
simplesmente ignorado:
ANA, IVA, *LORENA, MARIA...
Qual seria a solução?

PG 8.4.9  em Linux Mandriva
#psql -l
# Codificação  UTF8,  Collation pt_BR.UTF-8,  CType pt_BR.UTF-8;
Já tentei
set client_encoding to 'latin-1' ,  to 'win1252' e o resultado é o mesmo.

Paulo


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Ordenação em UTF8

2011-07-01 Por tôpico Luciano Schardosim
Pessoal,

Mais uma vez preciso da ajuda de vocês. Estou fazendo uma consulta com 
ordenação numa base UTF8 e a consulta esta ordenando primeiro as maiúsculas 
depois as minúsculas. Acredito que já passaram por isso, então, dicas serão bem 
vindas.

Abraços,

Prof. Luciano Schardosim

Enviado via iPad pra sair...
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ordenação equívoca do Postgres ?

2010-11-03 Por tôpico Osvaldo Kussama
Em 3 de novembro de 2010 16:54, Emerson Hermann
 escreveu:
> /*
> Olá Pessoal,
>
> Estou com um pequeno problema referente a ordenação do Postgres.
>
> O moido é o seguinte conforme script abaixo em algumas aplicações como
> Excel ou BrOffice o VICTOR LUIZ% vem antes de VICTORIA DE FATIMA% mas
> no Postgres versão 8.3 com client e server com codificação UTF8 está
> ordenando invertido ao menos no meu caso.
>
> Observei que  o Postgres está ordenando levando em consideração a
> remoção do espaço (space), então fiz um gambiarra  para resolver essa
> situação que foi usar o translate no order by, porém alguem sugere uma
> solução melhor ou poderia dizer o motivo de tal comportamento,
> arquivos de configuração ou algo semalhante para resolver tal problema
> ?
>
> OBS: Verifiquei que na versão do Postgres 8.4 e  9.0 não ocorre tal
> comportamento.
>
> Desde de já agradeço a colobaração de todos.
>
> Cordialmente,
>
> Emerson Hermann
> DBA
>
> */
> CREATE TEMP TABLE ord (
>     nome VARCHAR(50)
> );
> INSERT INTO ord (nome) VALUES ('VICTOR LUIZ NOBREGA DIAS DE FERIADO');
> INSERT INTO ord (nome) VALUES ('VICTORIA DE FATIMA FERREIRA DE LIMA');
> INSERT INTO ord (nome) VALUES ('ABEL ARAUJO DOS SANTOS DE CARVALHO');
>
> SELECT * FROM ord ORDER BY NOME ASC;
>
> SELECT * FROM ord ORDER BY translate(nome,' ','0') ASC;
> ___


Este assunto já foi bastante discutido nesta lista.
A classificação padrão não considera espaços e alguns caracteres
especiais (é como a glibc trabalha).

Uma possível solução está em:
http://postgresql.1045698.n5.nabble.com/ordenacao-e-libc-uma-possivel-solucao-podem-me-ajudar-a-testar-tt2025444.html#none

Além da alteração do LC_COLLATE outra alternativa é usar um operador
de comparação diferente para o sort, de seu exemplo:
SELECT * FROM ord ORDER BY NOME USING ~<~;
nome
-
 ABEL ARAUJO DOS SANTOS DE CARVALHO
 VICTOR LUIZ NOBREGA DIAS DE FERIADO
 VICTORIA DE FATIMA FERREIRA DE LIMA
(3 linhas)

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ordenação equívoca do Postgres ?

2010-11-03 Por tôpico Emerson Hermann
pt_BR.UTF8

Em 3 de novembro de 2010 16:02, JotaComm  escreveu:
>
> Olá,
> Em 3 de novembro de 2010 16:54, Emerson Hermann 
> escreveu:
>>
>> /*
>> Olá Pessoal,
>>
>> Estou com um pequeno problema referente a ordenação do Postgres.
>>
>> O moido é o seguinte conforme script abaixo em algumas aplicações como
>> Excel ou BrOffice o VICTOR LUIZ% vem antes de VICTORIA DE FATIMA% mas
>> no Postgres versão 8.3 com client e server com codificação UTF8 está
>> ordenando invertido ao menos no meu caso.
>>
>> Observei que  o Postgres está ordenando levando em consideração a
>> remoção do espaço (space), então fiz um gambiarra  para resolver essa
>> situação que foi usar o translate no order by, porém alguem sugere uma
>> solução melhor ou poderia dizer o motivo de tal comportamento,
>> arquivos de configuração ou algo semalhante para resolver tal problema
>> ?
>
> Qual o locale do seu banco?
>
>>
>> OBS: Verifiquei que na versão do Postgres 8.4 e  9.0 não ocorre tal
>> comportamento.
>>
>> Desde de já agradeço a colobaração de todos.
>>
>> Cordialmente,
>>
>> Emerson Hermann
>> DBA
>>
>> */
>> CREATE TEMP TABLE ord (
>>     nome VARCHAR(50)
>> );
>> INSERT INTO ord (nome) VALUES ('VICTOR LUIZ NOBREGA DIAS DE FERIADO');
>> INSERT INTO ord (nome) VALUES ('VICTORIA DE FATIMA FERREIRA DE LIMA');
>> INSERT INTO ord (nome) VALUES ('ABEL ARAUJO DOS SANTOS DE CARVALHO');
>>
>> SELECT * FROM ord ORDER BY NOME ASC;
>>
>> SELECT * FROM ord ORDER BY translate(nome,' ','0') ASC;
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
> []s
> --
> JotaComm
> http://jotacomm.wordpress.com
>
> ___
> 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


Re: [pgbr-geral] Ordenação equívoca do Postgres ?

2010-11-03 Por tôpico JotaComm
Olá,
Em 3 de novembro de 2010 16:54, Emerson Hermann
escreveu:

> /*
> Olá Pessoal,
>
> Estou com um pequeno problema referente a ordenação do Postgres.
>
> O moido é o seguinte conforme script abaixo em algumas aplicações como
> Excel ou BrOffice o VICTOR LUIZ% vem antes de VICTORIA DE FATIMA% mas
> no Postgres versão 8.3 com client e server com codificação UTF8 está
> ordenando invertido ao menos no meu caso.
>
> Observei que  o Postgres está ordenando levando em consideração a
> remoção do espaço (space), então fiz um gambiarra  para resolver essa
> situação que foi usar o translate no order by, porém alguem sugere uma
> solução melhor ou poderia dizer o motivo de tal comportamento,
> arquivos de configuração ou algo semalhante para resolver tal problema
> ?
>

Qual o locale do seu banco?


>
> OBS: Verifiquei que na versão do Postgres 8.4 e  9.0 não ocorre tal
> comportamento.
>
> Desde de já agradeço a colobaração de todos.
>
> Cordialmente,
>
> Emerson Hermann
> DBA
>
> */
> CREATE TEMP TABLE ord (
> nome VARCHAR(50)
> );
> INSERT INTO ord (nome) VALUES ('VICTOR LUIZ NOBREGA DIAS DE FERIADO');
> INSERT INTO ord (nome) VALUES ('VICTORIA DE FATIMA FERREIRA DE LIMA');
> INSERT INTO ord (nome) VALUES ('ABEL ARAUJO DOS SANTOS DE CARVALHO');
>
> SELECT * FROM ord ORDER BY NOME ASC;
>
> SELECT * FROM ord ORDER BY translate(nome,' ','0') ASC;
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>


[]s
-- 
JotaComm
http://jotacomm.wordpress.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Ordenação equívoca do Postgres ?

2010-11-03 Por tôpico Emerson Hermann
/*
Olá Pessoal,

Estou com um pequeno problema referente a ordenação do Postgres.

O moido é o seguinte conforme script abaixo em algumas aplicações como
Excel ou BrOffice o VICTOR LUIZ% vem antes de VICTORIA DE FATIMA% mas
no Postgres versão 8.3 com client e server com codificação UTF8 está
ordenando invertido ao menos no meu caso.

Observei que  o Postgres está ordenando levando em consideração a
remoção do espaço (space), então fiz um gambiarra  para resolver essa
situação que foi usar o translate no order by, porém alguem sugere uma
solução melhor ou poderia dizer o motivo de tal comportamento,
arquivos de configuração ou algo semalhante para resolver tal problema
?

OBS: Verifiquei que na versão do Postgres 8.4 e  9.0 não ocorre tal
comportamento.

Desde de já agradeço a colobaração de todos.

Cordialmente,

Emerson Hermann
DBA

*/
CREATE TEMP TABLE ord (
 nome VARCHAR(50)
);
INSERT INTO ord (nome) VALUES ('VICTOR LUIZ NOBREGA DIAS DE FERIADO');
INSERT INTO ord (nome) VALUES ('VICTORIA DE FATIMA FERREIRA DE LIMA');
INSERT INTO ord (nome) VALUES ('ABEL ARAUJO DOS SANTOS DE CARVALHO');

SELECT * FROM ord ORDER BY NOME ASC;

SELECT * FROM ord ORDER BY translate(nome,' ','0') ASC;
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ordenação estranha

2009-03-07 Por tôpico Fabrízio de Royes Mello
Vc recriou o cluster após o ajuste do LC_COLLATE ???

Tem que recriar o cluster e subir a base de dados para que isso tenha
efeito...

2009/2/27 Fabrízio de Royes Mello 

> 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 
>
> 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 
>>
>>>  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
>



-- 
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


Re: [pgbr-geral] ordenação estranha

2009-03-06 Por tôpico Edson Mundin Ferreira
Obrigado pela dica Fabrízio

mas tentei fazer conforme orientado no link, mas não resolveu o problema

Édson


Fabrízio de Royes Mello wrote:
> 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...
>

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ordenação estranha

2009-02-27 Por tôpico Fabrízio de Royes Mello
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 

> 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 
>
>>  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


Re: [pgbr-geral] ordenação estranha

2009-02-26 Por tôpico Adriano Espinoza de Oliveira
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 

>  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


Re: [pgbr-geral] ordenação estranha

2009-02-26 Por tôpico Fabrízio de Royes Mello
Qual o LC_COLLATE do seu cluster??

De uma olhada em:

http://www.postgresql.org/docs/8.1/interactive/charset.html#LOCALE


2009/2/26 Edson Mundin Ferreira 

>  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
>
>


-- 
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


[pgbr-geral] ordenação estranha

2009-02-26 Por tôpico Edson Mundin Ferreira




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


Re: [pgbr-geral] ordenação de array de inteiros [RESOLVIDO]

2008-07-01 Por tôpico Rúben Lício
Bem lembrado, já havia me esquecido de acrescentar o resolvido.

Obrigado.

2008/6/30 Dickson Guedes <[EMAIL PROTECTED]>:
> Rúben Lício escreveu:
>> Muito obrigado.
>>
>> Funciona perfeitamente tanto usando SELECT sort(v) quanto v := sort(v);
>>
>> 2008/6/30 Osvaldo Rosario Kussama <[EMAIL PROTECTED]>:
>>> Rúben Lício escreveu:
 Boa tarde,

 Tenho um array integer e preciso ordenar esse array para efetuar
 alguns calculos com esse resultado ordenada.
 Existe alguma função no PG para ordenar um array de forma ascendente?
 Caso não exista, alguem por acaso já tem uma SP feita para isso?

>>>
>>> Veja o módulo contrib/intarray em:
>>> http://www.postgresql.org/docs/current/interactive/intarray.html
>>>
>>> sort(int[], text dir)
>
>
> Como o Ruben fez, é sempre bom ter um feedback quando uma possivel
> solução ou caminho é indicado na lista a fim de que, futuras consultas
> no histórico possam indicar ao usuário se a solução é plausivel ou não.
>
> Para reforçar ainda mais isso é sempre bom acrescentar '[RESOLVIDO]' no
> assunto do e-mail.
>
> ":D
>
> --
> []s
> Dickson S. Guedes
> -
> Projeto Colmeia - Curitiba - PR
> (41) 3254-7130 ramal: 27
> http://pgcon.postgresql.org.br
> http://makeall.wordpress.com/
> http://planeta.postgresql.org.br/
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Rúben Lício Reis
Cybernet Latino América
www.cybernetla.com

Linux user #433535
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ordenação de array de inteiros [RESOLVIDO]

2008-06-30 Por tôpico Dickson Guedes
Rúben Lício escreveu:
> Muito obrigado.
> 
> Funciona perfeitamente tanto usando SELECT sort(v) quanto v := sort(v);
> 
> 2008/6/30 Osvaldo Rosario Kussama <[EMAIL PROTECTED]>:
>> Rúben Lício escreveu:
>>> Boa tarde,
>>>
>>> Tenho um array integer e preciso ordenar esse array para efetuar
>>> alguns calculos com esse resultado ordenada.
>>> Existe alguma função no PG para ordenar um array de forma ascendente?
>>> Caso não exista, alguem por acaso já tem uma SP feita para isso?
>>>
>>
>> Veja o módulo contrib/intarray em:
>> http://www.postgresql.org/docs/current/interactive/intarray.html
>>
>> sort(int[], text dir)


Como o Ruben fez, é sempre bom ter um feedback quando uma possivel 
solução ou caminho é indicado na lista a fim de que, futuras consultas 
no histórico possam indicar ao usuário se a solução é plausivel ou não.

Para reforçar ainda mais isso é sempre bom acrescentar '[RESOLVIDO]' no 
assunto do e-mail.

":D

-- 
[]s
Dickson S. Guedes
-
Projeto Colmeia - Curitiba - PR
(41) 3254-7130 ramal: 27
http://pgcon.postgresql.org.br
http://makeall.wordpress.com/
http://planeta.postgresql.org.br/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ordenação de array de inteiros

2008-06-30 Por tôpico Rúben Lício
Muito obrigado.

Funciona perfeitamente tanto usando SELECT sort(v) quanto v := sort(v);

2008/6/30 Osvaldo Rosario Kussama <[EMAIL PROTECTED]>:
> Rúben Lício escreveu:
>> Boa tarde,
>>
>> Tenho um array integer e preciso ordenar esse array para efetuar
>> alguns calculos com esse resultado ordenada.
>> Existe alguma função no PG para ordenar um array de forma ascendente?
>> Caso não exista, alguem por acaso já tem uma SP feita para isso?
>>
>
>
> Veja o módulo contrib/intarray em:
> http://www.postgresql.org/docs/current/interactive/intarray.html
>
> sort(int[], text dir)
>
> Osvaldo
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Rúben Lício Reis
Cybernet Latino América
www.cybernetla.com

Linux user #433535
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ordenação de array de inteiros

2008-06-30 Por tôpico Osvaldo Rosario Kussama
Rúben Lício escreveu:
> Boa tarde,
> 
> Tenho um array integer e preciso ordenar esse array para efetuar
> alguns calculos com esse resultado ordenada.
> Existe alguma função no PG para ordenar um array de forma ascendente?
> Caso não exista, alguem por acaso já tem uma SP feita para isso?
> 


Veja o módulo contrib/intarray em:
http://www.postgresql.org/docs/current/interactive/intarray.html

sort(int[], text dir)

Osvaldo

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] ordenação de array de inteiros

2008-06-30 Por tôpico Rúben Lício
Boa tarde,

Tenho um array integer e preciso ordenar esse array para efetuar
alguns calculos com esse resultado ordenada.
Existe alguma função no PG para ordenar um array de forma ascendente?
Caso não exista, alguem por acaso já tem uma SP feita para isso?

Obrigado.

-- 
Rúben Lício Reis
Cybernet Latino América
www.cybernetla.com

Linux user #433535
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ordenação

2007-06-18 Por tôpico Osvaldo Rosario Kussama

Edson Mundin Ferreira escreveu:

Pedro veja se é isso que vc. quer:

SELECT *
  FROM BAR
ORDER BY CASE WHEN campo >= 'A' THEN Campo ELSE to_char(to_number(campo, 
''),'') END


Édson Mundin Ferreira


Pedro B. Alves wrote:

Salve pessoal.
 
estou tendo um pouco de dificuldades na seguinte ocorrencia:
 
tenho um campo de uma tabela como varchar(20);
 
só que nesse campo é armazenado numeros "alguns contem letras, ex: 
ML201" só que muitos são apenas numeros. ex: 10,20,30.. etc.
 
então gostaria que meu select retornasse ordenado esses numeros..
 
por exemplo, se eu usar o order by noramlmente ele me traria na 
seguinte ordem:
 
campo

-|
1
10
11
12
13
2
21
22
23
3
30
31
32
A..
B..
C..
D..
 
e assim por diante..
 
gostaria que ele me retornasse da seguinte forma:

campo|
--|
1
2
3
10
11
12
13
21
22
23
30
31
32
A..
B..
C..
 
e assim por diante



Esta alternativa não funciona caso o campo contenha letras mas o 
primeiro caracter seja um algarismo, ex. '1B1C5'.


Talvez esta sentença atenda (se apenas os campos contendo exclusivamente 
algarismos devam ser considerados como numéricos para efeito de ordenação):

SELECT * FROM bar
 ORDER BY CASE campo ~ '[^[:digit:]+]'
   WHEN true THEN campo
   ELSE lpad(campo, 20, '0') END;

[]s
Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ordenação

2007-06-18 Por tôpico Edson Mundin Ferreira




Pedro veja se é isso que vc. quer:

SELECT *
  FROM BAR
ORDER BY CASE WHEN campo >= 'A' THEN Campo ELSE
to_char(to_number(campo, ''),'') END

Édson Mundin Ferreira


Pedro B. Alves wrote:

  Salve pessoal.
   
  estou tendo um pouco de dificuldades na seguinte ocorrencia:
   
  tenho um campo de uma tabela como varchar(20);
   
  só que nesse campo é armazenado numeros "alguns contem letras,
ex: ML201" só que muitos são apenas numeros. ex: 10,20,30.. etc.
   
  então gostaria que meu select retornasse ordenado esses numeros..
   
  por exemplo, se eu usar o order by noramlmente ele me traria na
seguinte ordem:
   
  campo
  -|
  1
  10
  11
  12
  13
  2
  21
  22
  23
  3
  30
  31
  32
  A..
  B..
  C..
  D..
   
  e assim por diante..
   
  gostaria que ele me retornasse da seguinte forma:
  campo|
  --|
  1
  2
  3
  10
  11
  12
  13
  21
  22
  23
  30
  31
  32
  A..
  B..
  C..
   
  e assim por diante
   
  alguém sabe oq eu tenho que fazer?
  

___
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


Re: [pgbr-geral] Ordenação

2007-06-15 Por tôpico Placido Loko

Fale Pedro,

Cara o teu campo deve estar como string...certo?
Tenta converter o string pra int dai da um order by dentro da conversão!!

Acho q deve dar certo!


Em 07/06/07, Pedro B. Alves <[EMAIL PROTECTED]> escreveu:


Salve pessoal.

estou tendo um pouco de dificuldades na seguinte ocorrencia:

tenho um campo de uma tabela como varchar(20);

só que nesse campo é armazenado numeros "alguns contem letras, ex: ML201"
só que muitos são apenas numeros. ex: 10,20,30.. etc.

então gostaria que meu select retornasse ordenado esses numeros..

por exemplo, se eu usar o order by noramlmente ele me traria na seguinte
ordem:

campo
-|
1
10
11
12
13
2
21
22
23
3
30
31
32
A..
B..
C..
D..

e assim por diante..

gostaria que ele me retornasse da seguinte forma:
campo|
--|
1
2
3
10
11
12
13
21
22
23
30
31
32
A..
B..
C..

e assim por diante

alguém sabe oq eu tenho que fazer?

___
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


Re: [pgbr-geral] Ordenação

2007-06-14 Por tôpico Osvaldo Rosario Kussama

Pedro B. Alves escreveu:

Salve pessoal.
 
estou tendo um pouco de dificuldades na seguinte ocorrencia:
 
tenho um campo de uma tabela como varchar(20);
 
só que nesse campo é armazenado numeros "alguns contem letras, ex: 
ML201" só que muitos são apenas numeros. ex: 10,20,30.. etc.
 
então gostaria que meu select retornasse ordenado esses numeros..
 
por exemplo, se eu usar o order by noramlmente ele me traria na seguinte 
ordem:
 
campo

-|
1
10
11
12
13
2
21
22
23
3
30
31
32
A..
B..
C..
D..
 
e assim por diante..
 
gostaria que ele me retornasse da seguinte forma:

campo|
--|
1
2
3
10
11
12
13
21
22
23
30
31
32
A..
B..
C..
 
e assim por diante
 
alguém sabe oq eu tenho que fazer?





Verifique se a utilização da função to_number() lhe atende.

bdteste=# SELECT * FROM bar ORDER BY campo;
 cod | campo
-+---
   1 | 1
   2 | 10
   3 | 11
  12 | 1B1C5
   4 | 2
   5 | 20
   6 | 21
   7 | 22
   8 | 3
   9 | 30
  10 | 31
  13 | AB25
  11 | ML201
(13 registros)

bdteste=# SELECT * FROM bar ORDER BY to_number(campo,'9');
 cod | campo
-+---
   1 | 1
   4 | 2
   8 | 3
   2 | 10
   3 | 11
   5 | 20
   6 | 21
   7 | 22
  13 | AB25
   9 | 30
  10 | 31
  12 | 1B1C5
  11 | ML201
(13 registros)

Repare que a função to_number() desconsidera os caracteres 
não-numéricos, não sei se é exatamente isso que você deseja.


bdteste=# SELECT *,to_number(campo,'9') FROM bar ORDER BY 
to_number(campo,'9');

 cod | campo | to_number
-+---+---
   1 | 1 | 1
   4 | 2 | 2
   8 | 3 | 3
   2 | 10|10
   3 | 11|11
   5 | 20|20
   6 | 21|21
   7 | 22|22
  13 | AB25  |25
   9 | 30|30
  10 | 31|31
  12 | 1B1C5 |   115
  11 | ML201 |   201
(13 registros)

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Ordenação

2007-06-11 Por tôpico Pedro B. Alves

Salve pessoal.

estou tendo um pouco de dificuldades na seguinte ocorrencia:

tenho um campo de uma tabela como varchar(20);

só que nesse campo é armazenado numeros "alguns contem letras, ex: ML201" só
que muitos são apenas numeros. ex: 10,20,30.. etc.

então gostaria que meu select retornasse ordenado esses numeros..

por exemplo, se eu usar o order by noramlmente ele me traria na seguinte
ordem:

campo
-|
1
10
11
12
13
2
21
22
23
3
30
31
32
A..
B..
C..
D..

e assim por diante..

gostaria que ele me retornasse da seguinte forma:
campo|
--|
1
2
3
10
11
12
13
21
22
23
30
31
32
A..
B..
C..

e assim por diante

alguém sabe oq eu tenho que fazer?
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] ORDENAÇÃO

2007-06-06 Por tôpico Thiago Risso

Boas ...

Seguinte  Preciso fazer um select de todas as tabelas do meu BD
(pg_class) , onde estas venha na seguinte ordem:

As tabelas que possuam FK , devem vir após sua tabela relacionada ...
(ORDEM para que no INSERT não haja problemas com chaves estrangeiras)...

Ex:
tenho as tabelas:pessoa, pessoa_endereco, endereco_tipo, cidade e estado.

as tabelas deveriam vir na seguinte ordem :

estado  ou endereco tipo (Que não possuem nenhuma FK)
cidade (Que possui a FK do Estado)
pessoa_endereco (Que possui as FK's de endereco_tipo, cidade e estado)
pessoa (Que possui FK de pessoa_endereco)

* Isso é só um exemplo, pois em minha base possuo mais de 200 tabelas,
quase todas elas relacionadas.

Através da pg_trigger eu consigo pegar as tabelas relacionadas com o select :

SELECT T.relname,(SELECT relname FROM pg_class WHERE oid = TG.tgrelid)
FROM pg_trigger TG
INNER JOIN pg_class T ON T.oid = TG.tgconstrrelid AND t.relname = 'pessoa'
INNER JOIN pg_namespace SCH ON SCH.oid = T.relnamespace
AND SCH.nspname = 'public';

Mas estou meio perdido de como montar uma função para ordenar isso...

Teria que ser algo assim :

SELECT * FROM pg_class ORDER BY tablenoconstraint();

ou

SELECT tablenoconstraint();

Bem Desde já agradeço ...

Att:
Thiago Risso
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral