Điều này sẽ hoạt động cho cả kết hợp "Firstname Lastname" và "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
Tất nhiên, nếu người dùng có khoảng trắng trong một trong những tên của họ vì lý do nào đó, bạn sẽ gặp vấn đề khi phân tích cú pháp này, nhưng tôi nghi ngờ rằng đó sẽ là trường hợp dù sao khi không lưu trữ tên của bạn trong các trường riêng biệt.