Создайте таблицу поиска с исходным значением и соответствующим порядком сортировки:
SortLookupTable:
OriginalValue, SortOrder
1, 2
2, 4
3, 3
4, 1
Затем присоедините таблицу к исходной таблице
SELECT T.*
FROM
MyTable T
INNER JOIN SortLookupTable S
ON T.Value = S.OriginalValue
ORDER BY
S.SortOrder;