Em 17 de junho de 2011 11:59, Jairo <[email protected]> escreveu: > Pessoal alguém poderia ajudar com a seguinte situação: Estou fazendo um > teste com uma tabela teste > > Tb_produ campos código character varying(6) NOT NULL, descricao character > varying(30) > > > > Tenho seguinte registros: > > Código ;Descricao > > "3" ;"produto 1" > > "3000" ;"produto 2" > > "301" ;"produto 3" > > "a" ;"produto 4" > > "a3" ;"produto 5" > > "a31" ;"produto 6" > > "abc" ;"produto 7" > > > > Estou tentando fazer um select com order by com o campo Código porem > considerando > > os registros como numérico existe alguma forma??? > > > > o resultado esperado do select teria que ser o seguinte: > > Código ;Descricao > > "3" ;"produto 1" > > "301" ;"produto 3" > > "3000" ;"produto 2" > > "a" ;"produto 4" > > "a3" ;"produto 5" > > "a31" ;"produto 6" > > "abc" ;"produto 7" >
Eu não entendi sua ordem desejada. Se fosse considerar o campo Código como numérico eu interpreto que, considerando apenas os algarismos desse campo, "a31" deveria aparecer antes de "301". Tente explicar melhor a ordem desejada e também como considerar um campo que não contenha algarismos, como por ex. "abc". Os algarismos a serem considerados sempre aparecem no final da sring ou poderia ser algo do tipo "ab12CD345"? De qualquer maneira verifique se a função regexp_replace [1], substituindo os não-algarismos por string vazia, pode ajudá-lo. Algo do tipo: regexp_replace(codigo, '[^[:digit:]]', '','g') Osvaldo [1] http://www.postgresql.org/docs/current/interactive/functions-matching.html#FUNCTIONS-POSIX-REGEXP _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
