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

Responder a