Таблица:
first_column second_column
1 11
1 12
2 21
1 13
2 22
3 31
3 32
4 23
Внутри order by допускается использование case, например:
select * from TableTemp order by case when first_column = 1 then second_column
else first_column end
Результат сортировки:
first_column second_colum
2 22
2 21
3 31
3 32
4 23
1 11
1 12
1 13
Подскажите, пожалуйста, как работает данная сортировка?
Причина вопроса - в столбце first_column помимо значения "1" имеются "2", "3" и "4".
Забегая вперед, я верно понял, что все строки, в которых first_column = 1 сортируются по second_column, а все строки, в которых first_column !=1 - по first_column?
Еще как вариант работы - если в таблице хотя бы одно значение first_column равно "1", то таблица должна сортироваться по столбцу second_column, в противном случае - по первому столбцу. Тем не менее, в последнем столбце отсутствует подобная сортировка.