Cela devrait fonctionner pour les combinaisons "Firstname Lastname" et "Firstname Middlename Lastname".
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
Bien sûr, si les utilisateurs disposent d'un espace dans l'un de leurs noms pour une raison quelconque, vous aurez un problème à analyser cela, mais je soupçonne que ce serait le cas de toute façon si vous ne stockez pas vos noms dans des champs séparés.