select id, text, len(text)-len(replace(text,' ','')) as wordcount from mytable
Jeg kan ikke lige huske om replace() findes i Oracle, men ideen er som følger: Det der adskiller ord er et mellemrum, og kun et mellemrum. Erstat alle mellemrum i teksten med tomme strenge. Dermed vil forskellen i længden i de to strenge give antal ord.
lap> Eh? Nej, du har ret; der bør offsetts med +1 ord da der kun vil være 2 mellemrum til 3 ord. Og det forudsætter, som sagt, at der kun anvendes mellemrum til at adskille ord - og at der kun er ét mellemrum mellem hvert ord.
btw, if more than one space between words may happen, it can be solved using this
SELECT id, LENGTH(TRIM(replace(text,' ',' '))) - LENGTH( REPLACE( TRIM(text), ' ', '') ) + 1 AS wordcount FROM text
i.e. replace double spaces with single spaces
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.