Avatar billede fredand Forsker
05. februar 2004 - 13:16 Der er 5 kommentarer og
1 løsning

How to count words in a text?

Hello!

I got a table with some texts and now I need to count the words in each text.
Text
----
id
text

For eg. "Hello! What's up!" should be 3 words.

So if any one could help me out to solve this with some smart SQL, it would be great!

Best regards
Fredrik
Avatar billede trer Nybegynder
06. februar 2004 - 09:31 #1
Prøv følgende

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.

Mvh
Troels
Avatar billede lap Nybegynder
06. februar 2004 - 10:35 #2
tja +/- et par stykker :-)
Avatar billede trer Nybegynder
06. februar 2004 - 11:13 #3
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.

Men man kan ikke få alt for 30 points :-)
Avatar billede fredand Forsker
06. februar 2004 - 16:26 #4
Hello Mates!

This is the result:
    SELECT id, LENGTH(TRIM(text)) - LENGTH( REPLACE( TRIM(text), ' ', '') ) + 1 AS wordcount FROM text
       
You need to give me an answer so I can give you the points!

Best regards
Fredrik
Avatar billede trer Nybegynder
06. februar 2004 - 16:31 #5
Ok, an answer as requested.

Good luck.

Regards
Troels
Avatar billede trer Nybegynder
06. februar 2004 - 16:33 #6
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester