Nestor Costa de Oliveira escreveu: > Estou com uma dúvida em relação ao melhor comando a ser usado, ou se > existe um mais simples no postgre para fazer a seguinte tarefa. > > Imaginando uma string “RIB12345” > > Eu preciso retornar somente o valor número dessa string. No Access nós > temos a função Right / Left (onde passamos o comprimento de caracteres > que precisamos obter no retorno, e funciona muito bem.) > > Alguém sabe ou já utilizou alguma função no Postgre que faça essa tarefa??? > > Lembrando que isso será utilizado em uma View e o resultado da resposta > é utilizada dentro de um CASE!
Se sua string obedece a um padrão (no seu caso: 3 caracteres seguidos de 5 algarismos) você pode utilizar a função substr. http://www.postgresql.org/docs/8.1/interactive/functions-string.html bdteste=# SELECT substr('RIB12345', 4); substr -------- 12345 (1 registro) Caso seja uma sequencia de caracteres seguida de uma sequencia de algarismos você pode utilizar a funçao regexp_replace. http://www.postgresql.org/docs/8.1/interactive/functions-matching.html bdteste=# SELECT regexp_replace('RIB12345', '[[:alpha:]]*', ''); regexp_replace ---------------- 12345 (1 registro) bdteste=# SELECT regexp_replace('RI123456', '[[:alpha:]]*', ''); regexp_replace ---------------- 123456 (1 registro) bdteste=# SELECT regexp_replace('R1234567', '[[:alpha:]]*', ''); regexp_replace ---------------- 1234567 (1 registro) bdteste=# SELECT regexp_replace('12345678', '[[:alpha:]]*', ''); regexp_replace ---------------- 12345678 (1 registro) Para outras variações consulte o manual. []s Osvaldo _______________________________________________________ Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora! http://br.acesso.yahoo.com _______________________________________________ Grupo de Usuários do PostgreSQL no Brasil Antes de perguntar consulte o manual http://pgdocptbr.sourceforge.net/ Para editar suas opções ou sair da lista acesse a página da lista em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios
