Eine kleine Herausforderung in einem Content-Projekt: Wie oft kommt eine Zeichenfolge in einem VARCHAR(max) vor? Dafür habe ich keine Standard-Funktion im SQL Server gefunden. Also muss man sich selbst helfen und sich die Frage selbst beantworten.

Wie oft kommt eine Zeichenfolge in einem VARCHAR(max) vor?

Mit Hilfe der CHARINDEX-Funktion kann man sich eine kleine T-SQL-Funktion bauen, mit der man sich das Ergebnis ermittelt.

CREATE FUNCTION dbo.charindexCounter(@search varchar(max), @source varchar(max)) RETURNS bigint
AS
BEGIN

	DECLARE @result as bigint
	set @result = 0
	declare @pos as bigint
	set @pos = 0

	set @pos = CHARINDEX(@search, @source, @pos)

	if @pos > 0 
	  set @result = @result + 1

	WHILE @pos > 0
	BEGIN
  	  set @pos = CHARINDEX(@search, @source, @pos+1)

  	  if @pos > 0 
	    set @result = @result + 1

	END

	RETURN (@result)
END

Die FUnktion hat sicher noch Verbesserungspotenzial. Verbesserungsvorschläge?