SQL: Häufigkeit des Vorkommens einer Zeichenfolge innerhalb eines Texts ermitteln

Aus DBWiki
Wechseln zu: Navigation, Suche

Zurück zur Übersicht



Ersetzt man durch Verwendung der Replace()-Funktion im ursprünglichen Text die zu suchende Zeichenfolge durch eine leere Zeichenfolge, lässt sich durch Subtraktion der Länge des erhaltenen Textes von der Länge des Ursprungstextes, und anschließender Division durch die Länge der zu suchenden Zeichenfolge, deren Häufigkeit ermitteln.

Will man z. B. die Anzahl der Semikolons in einem Text ermitteln, so kann das so erfolgen (wegen eines einzelnen Zeichens entfällt hier der Divisionsschritt):

SELECT Len( '7369;Schmidt;Sachbearbeiter;7902;17.02.1981;800;;20' )
     - Len( REPLACE( '7369;Schmidt;Sachbearbeiter;7902;17.02.1981;800;;20', ';' ,'' ) ) AS num_semikons

Als Ergebnis sollten wir 7 erhalten.


Dieses Beispiel sucht nach einer längeren Zeichenfolge, weshalb eine Division durch die Länge dieser Zeichenfolge erforderlich ist.

SELECT (Len( 'Abrakadabra' ) - Len( REPLACE( 'Abrakadabra', 'ra', ''))) \ len( 'ra' ) AS num_semikons

Hier sollte 2 als Ergebnis erscheinen.

Anmerkung
In Jet-SQL kann statt des für eine Division üblichen Schrägstrichs (/) ein umgekehrter Schrägstrich (\) für eine Ganzzahl-Division verwendet werden.



Zurück zur Übersicht