これは、「Firstname Lastname」と「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
もちろん、 にスペースがある場合は なんらかの理由で、これを解析する際に問題が発生する可能性がありますが、名前を別のフィールドに保存しない場合は、とにかくそうなると思います.