String Operationen mit T-SQL

Bisher war T-SQL nichts für mich. Ich fand alleine die Optik schon sehr gewöhnungsbedürftig, überall diese @-Zeichen... Aber wenn man es sich mal etwas genauer ansieht ist es eigentlich gar nicht mehr so kompliziert.

Die folgende Funktion zerlegt eine Belegnummer in der Form von AB-YYYY-012345 oder ABC-YYYY-012345 so, dass nur YYYY zurückkommt, also das Jahr.

Dazu verwende ich die T-SQL Funktion PATINDEX, welche den Index einer Zeichenfolge innerhalb eines Strings zurückgibt (ähnlich InStr).

Wir suchen also nach dem ersten Bindestrich in ABC-YYYY-012345. Der Suchparameter muss daher '%-%' heißen, da vor und nach dem Bindestrich beliebiger Text stehen kann.

Viele weitere String-Funktionen findet man auf MSDN.

Create Function [dbo].[f_GetBelegnummerJahreszahl](@Belegnummer varchar(50)) returns varchar(50)
as 
Begin
 
	-- Variablen deklarieren
	Declare @RetVal varchar(50)
	Declare @Dummy varchar(50)
	Declare @FirstFound Integer
 
	-- Dummystring belegen (könnte man sich auch sparen und gleich mit @Belegnummer arbeiten)
	Set @Dummy = @Belegnummer
 
	-- Ersten Bindestrich suchen und merken
	Set @FirstFound = PATINDEX('%-%', @Dummy)
 
	-- Alles ab dem ersten Bindestrich + 1, Länge 4 zurückgeben (das ist die Jahreszahl)
	Set @Dummy = SUBSTRING(@Dummy, @FirstFound+1, 4)
 
	-- Rückgabewert setzen
	Set @RetVal = @Dummy
 
	-- und zurückgeben
return @RetVal
end

0 Antworten zu String Operationen mit T-SQL

  1. Bisher gibt es keine Kommentare.

Antwort hinterlassen