Perfeito, obrigado a todos.

 

 

" Falta de tempo é desculpa daqueles que perdem tempo por falta de métodos"

 

Att.

----------------------------------------------------------------------------

Rubens José Rodrigues

T.I, Analista de Suporte

Tel: (27)3399-6419 / (27)9969-8081

[email protected]

----------------------------------------------------------------------------

Broker Nestlé do Brasil S/A

Rua José Ramos de Oliveira, 91, 29111-280

Nossa Senhora da Penha, Vila Velha, ES

(27)3399-6400 / (27)9975-0140

 

De: Fabrízio de Royes Mello [mailto:[email protected]] 
Enviada em: segunda-feira, 6 de julho de 2009 17:41
Para: [email protected]; Comunidade PostgreSQL
Brasileira
Assunto: Re: [pgbr-geral] Dúvidas em funções com strings;

 

 

2009/7/6 Rubens José Rodrigues <[email protected]>

<corte> 

a) Contar a presença de uma determinada string dentro de outra string. Ex.:
strcount(‘a’,’amanhã’)(*), aqui esta função contaria a incidência da
substring ‘a’ na string ‘amanh㒠me retornado o valor 2.


Caro Rubens,

Função nativa do PostgreSQL para solucionar esse teu problema creio que não
tenha (pelo menos não encontrei na documentação [1])

Mas rapidinho podemos solucionar esse impasse:

create or replace function strcount(text, text) returns bigint as 
$$
  select sum(conta) 
    from (select case 
                   when substr($2, i, 1) = $1 then 
                     1 
                   else 
                     0 
                 end as conta 
            from generate_series(1, length($2)) as i) as x;
$$
language sql;


E um teste rápido:


bdteste=# select strcount('i', 'Fabrizio');
 strcount 
----------
        2
(1 row)

bdteste=# select strcount('a', 'amanhã');
 strcount 
----------
        2
(1 row)


Espero ter ajudado.


[1] http://www.postgresql.org/docs/8.4/interactive/functions-string.html


Cordialmente,

-- 
Fabrízio de Royes Mello
>> Blog sobre PostgreSQL: http://fabriziomello.blogspot.com

  _____  

E-mail verificado pelo Terra Anti-Spam.
Para classificar esta mensagem como spam ou não spam, clique
<http://ecp.terra.com.br/cgi-bin/reportspam.cgi?+_d=SCY0MDUxNTIxMiNwZXJtIWJh
dGlzdGFyZXByZXNlbnRhY29lc2xtJjEsMTI0NjkxMjg1Mi40MjA4NjMuMjY1MDguY2FicmV0b24u
dGVycmEuY29tLDYyNjA=TerraMail>  aqui.
Verifique periodicamente a pasta Spam para garantir que apenas mensagens
indesejadas sejam classificadas como Spam. 

  _____  

Esta mensagem foi verificada pelo E-mail Protegido.
Atualizado em 03/07/2009

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a