Другим вариантом будет наличие таблицы проверки для столбца состояния, которая называется что-то вроде VAL_GAME_STATUS. GAMES.STATUS будет внешним ключом для VAL_GAME_STATUS, а VAL_GAME_STATUS migt будет выглядеть как
CREATE TABLE VAL_GAME_STATUS -- Oracle format - modify as needed for other DB
(STATUS NUMBER PRIMARY KEY,
DESCRIPTION VARCHAR2(50) NOT NULL UNIQUE,
SORT_ORDER NUMBER NOT NULL UNIQUE);
Учитывая это, запрос на выборку отсортированных результатов из GAMES становится
SELECT g.*
FROM GAMES g
INNER JOIN VAL_GAME_STATUS s
USING (STATUS)
ORDER BY s.SORT_ORDER;
Недостатком здесь является то, что вам нужно выполнить объединение для сортировки данных, но это незначительный удар, поскольку VAL_GAME_STATUS - это небольшая таблица, которая, вероятно, может храниться в памяти. Преимущество состоит в том, что вы можете изменить порядок сортировки на лету, не касаясь вашего кода. Добавление новых значений статуса с соответствующим порядком сортировки также легко выполняется.
Делись и наслаждайся.