Dies sollte sowohl für die Kombinationen „Vorname Nachname“ als auch „Vorname Zweiter Vorname Nachname“ funktionieren.
DECLARE @name AS NVARCHAR(50)
SET @name = 'Firstname Middle Lastname'
SELECT SUBSTRING(@name, 1, 1) + --First initial
SUBSTRING(@name, CHARINDEX(' ', @name) + 1, 1) + --Middle/Last initial
CASE WHEN 0 <> CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) -- More than two words
THEN SUBSTRING(@name, CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) + 1, 1) --Last initial
ELSE '' --Have to add empty string to avoid NULLing entire result
END
Natürlich, wenn Benutzer ein Leerzeichen in haben Wenn Sie aus irgendeinem Grund einen ihrer Namen haben, werden Sie ein Problem haben, dies zu analysieren, aber ich vermute, dass dies sowieso der Fall wäre, wenn Sie Ihre Namen nicht in separaten Feldern speichern.