Avatar billede amoelle Nybegynder
03. januar 2006 - 16:19 Der er 2 kommentarer og
1 løsning

optælling af forekomster af en bestemt karakter i en streng

Kan man optælle hvormange forekomster der er af f.eks. punktum ('.') i en streng i Oracle 9i ? (som jo ikke understøtter regulære udtryk)

Jeg har en kolonne (Varchar2), der f.eks. kan indeholde noget i stil med: "ms.hd.BC:hD.BC:hL.MM:hBinaertMB"
hvor svaret skulle være tallet 4

Man ved principielt ikke hvor 'dyb' strengen kan blive

Jeg har en forestilling om, at en passende elegant kombination af substr/instr/decode/sum/length kan løse opgaven, men jeg kan ikke finde ud af det.

Alternativt kan jeg skrive en lille PL/SQL funktion, der gennemgår strengen karakterer for karakter, men det er jo ikke helt så interessant :-)

/Anne
Avatar billede arne_v Ekspert
03. januar 2006 - 16:28 #1
http://www.unix.org.ua/orelly/oracle/prog2/ch11_02.htm

11.2.4 Counting Substring Occurrences in Strings

måske
Avatar billede miracon Nybegynder
03. januar 2006 - 17:04 #2
select length(col1)-length(replace(col1,'.'))
from tabel
......
Avatar billede amoelle Nybegynder
03. januar 2006 - 17:08 #3
less is more ;-)
tak for hjælpen
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