Если mySQL и sqlite отказываются от использования CASE в предложениях ORDER BY (MSSQL делает, и я не вижу причин, по которым другие системы этого не делают), вы можете использовать что-то вроде:
ORDER BY CASE
WHEN classes ='A' THEN 1
WHEN classes ='C' THEN 2
WHEN classes ='B' THEN 3
WHEN classes ='D' THEN 4
ELSE 5
END CASE
Если столбецможет содержать более одного параметра в любом конкретном порядке, который вы также можете сделать:
ORDER BY CASE
WHEN classes LIKE '%A%' THEN 1
WHEN classes LIKE '%C%' THEN 2
WHEN classes LIKE '%B%' THEN 3
WHEN classes LIKE '%D%' THEN 4
ELSE 5
END CASE
, хотя перегрузка такого поля не является нормальной формой и обычно не рекомендуется.