I would do this with a regular table expression.
DECLARE @data TABLE (Name varchar(50), NameCount int);
INSERT INTO @data (Name, NameCount)
SELECT 'Kaganoff Benzion', 122
UNION SELECT 'Van Gennep', 443
UNION SELECT 'Michelen Luis', 656
UNION SELECT 'kraig Beno', 333
UNION SELECT 'Mogrobejo Endika', 555;
WITH NamesAndLetters AS
(
SELECT
SUBSTRING(UPPER(Name), 1, 1) [FirstNameLetter]
, SUBSTRING(UPPER(Name), PATINDEX('% %', Name) + 1, 1) [LastNameLetter]
, Name
, NameCount
FROM @data
)
SELECT Name, NameCount
FROM NamesAndLetters
ORDER BY
FirstNameLetter ASC
, LastNameLetter ASC
, NameCount DESC
Sorry for the first post ... I did not see the Name first be a single column.
source
share