1 вариант:
PHP тут не при чем. Просто добавьте в запрос ORDER BY `field`
Если динамически выбирать поле из запроса, то брать поле, а лучше код из "справочника".
А после добавляешь в запрос.
2 вариант:
Нужно собрать корректный массив, в вашем случае с вложениями по департаментам:
$departments = [];
foreach($row as $items) {
if (!isset($departments[$item['DEPT_NAME']])) {
$departments[$item['DEPT_NAME']] = [];
}
$departments[$item['DEPT_NAME']][] = $items;
}
А после вы можете их сортировать как вам удобно. Благо для этого полно функций в php. Сами департаменты отсортировать нужно по ключам (krsort, ksort). А если еще и внутри, то тут уже через посложнее, но тоже возможно, посмотрите примеры использования (usort - пример с многомерными массивами).