Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment puis-je compter le nombre de mots dans une chaîne dans Oracle ?

Vous pouvez utiliser quelque chose de similaire à ceci. Cela obtient la longueur de la chaîne, puis soustrait la longueur de la chaîne avec les espaces supprimés. En ajoutant ensuite le chiffre un à cela devrait vous donner le nombre de mots :

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

Voir SQL Fiddle avec démo

Si vous utilisez les données suivantes :

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
;

Et la requête :

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

Le résultat est :

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