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