T-SQL bietet keine Möglichkeit die Vorkommnisse eines Zeichens innerhalb einer Zeichenkette zu zählen.
Richtig! Nun ja, zumindest fast. Zwar gibt es keine eingebaute Funktion, mit folgendem Konstrukt lässt sich die Anforderung jedoch trotzdem erfüllen:
-- Anzahl der vorkommenden 't' zählen
Select
CompanyName,
len(CompanyName) - len(replace(CompanyName, 't', '')) as Anzahl
from
Customers
Im gewählten Beispiel, welches übrigens auf der Northwind Datenbank ausprobiert werden kann, werden die Anzahl der ’t’ innerhalb des Felds CompanyName gezählt.
Die Funktionsweise ist recht einfach:
Zuerst wird in Zeile 4 die Länge des Namens ermittelt. Im Beispiel von ‘Alfreds Futterkiste’ wäre dies 19. Anschließend werden alle ’t’ innerhalb von ‘Alfreds Futterkiste’ durch einen leeren Character ersetzt und die Länge von 16 Zeichen ermittelt. Als letztes wird der zweite Wert vom ersten subtrahiert, so dass wir auf unser Ergebnis von 3 kommen.
Eigentlich ganz einfach, oder :-)
Es gibt 3 Kommentare