sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo puedo contar el número de palabras en una cadena en Oracle?

Puedes usar algo similar a esto. Esto obtiene la longitud de la cadena, luego resta la longitud de la cadena con los espacios eliminados. Al agregar el número uno a eso, debería obtener el número de palabras:

Select length(yourCol) - length(replace(yourcol, ' ', '')) + 1 NumbofWords
from yourtable

Ver SQL Fiddle con demostración

Si utiliza los siguientes datos:

CREATE TABLE yourtable
    (yourCol varchar2(15))
;

INSERT ALL 
    INTO yourtable (yourCol)
         VALUES ('Hello To Oracle')
    INTO yourtable (yourCol)
         VALUES ('oneword')
    INTO yourtable (yourCol)
         VALUES ('two words')
SELECT * FROM dual
;

Y la consulta:

Select yourcol,
  length(yourCol) - length(replace(yourcol, ' ', '')) + 1 NumbofWords
from yourtable

El resultado es:

|         YOURCOL | NUMBOFWORDS |
---------------------------------
| Hello To Oracle |           3 |
|         oneword |           1 |
|       two words |           2 |