Oracle
 sql >> Database >  >> RDS >> Oracle

Come posso contare il numero di parole in una stringa in Oracle?

Puoi usare qualcosa di simile a questo. Questo ottiene la lunghezza della stringa, quindi sottrae la lunghezza della stringa con gli spazi rimossi. A quel punto, aggiungendo il numero uno a quello dovresti darti il ​​numero di parole:

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

Vedi SQL Fiddle con demo

Se utilizzi i seguenti dati:

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
;

E la domanda:

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

Il risultato è:

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