Основываясь на новых требованиях и в общих чертах на ответе @kuru kuru, я надеюсь, что этот порядок по пунктам демонстрирует, почему нормализация - это хорошо. То, что это хорошо для JSON и Ajax, не означает, что вы должны обращаться с вашей базой данных:
DECLARE @t TABLE (x VARCHAR(32));
INSERT @t VALUES
('D12,D13'),
('F19,F20'),
('A12,A13'),
('F10,F11'),
('D14'),
('A1,A2'),
('A5,A6'),
('D4,D5'),
('F5,F6,F7'),
('AA1,AA2'),
('Z98,Z99');
SELECT x FROM @t
ORDER BY CASE
WHEN UPPER(x) LIKE '[A-Z][A-Z]%'
THEN 'Z' + LEFT(x,2) ELSE LEFT(x,1) END,
CONVERT(INT,
CASE WHEN x LIKE '%,%' THEN
SUBSTRING(x, PATINDEX('%[0-9]%', x),
CHARINDEX(',', x)-PATINDEX('%[0-9]%', x))
ELSE
SUBSTRING(x, PATINDEX('%[0-9]%', x), 32)
END
);