sql >> Databasteknik >  >> RDS >> Oracle

Hur kan jag räkna antalet ord i en sträng i Oracle?

Du kan använda något liknande detta. Detta får längden på strängen och subtraherar sedan längden på strängen med blanksteg borttagna. Genom att sedan lägga till siffran ett till det bör du få antalet ord:

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

Se SQL Fiddle with Demo

Om du använder följande data:

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
;

Och frågan:

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

Resultatet är:

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


  1. dbms_output size buffertspill

  2. Vad gör en transaktion kring ett enskilt uttalande?

  3. Oracle SQL Where-klausul för att hitta datumposter äldre än 30 dagar

  4. Hur säkerställer du att databaser inte har fragmenterade index