Em 10/02/11, Leonardo Cezar<[email protected]> escreveu:
> 2011/2/10 Marcelo Silva (IG) <[email protected]>:
>
>> Frase = ‘Minha primeira funcao’;
>> texto = split_part(Frase, ' ', 1);
>> return result;
>>
>> ele me traz a palavra conforme o indice...
>> Gostaria de saber como usar um loop para contar as palavras de uma frase
>> ou
>> texto
>
> SELECT array_upper(regexp_split_to_array('Era uma vez um sicrano
> beltrano',E'\\s'),1) AS "#palavras";
> #palavras
> -----------
> 6
> (1 row)
>
Caso deseje desconsiderar as palavras repetidas pode usar:
bdteste=# SELECT count(DISTINCT foo) FROM regexp_split_to_table('the
quick brown fox jumped over the lazy dog', E'\\s+') AS foo;
count
-------
8
(1 row)
Se desejar todas as palavras, independente de serem ou não repetidas,
é só tirar o DISTINCT.
http://www.postgresql.org/docs/current/interactive/functions-matching.html#FUNCTIONS-POSIX-REGEXP
Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral