Было трудно придумать подходящий заголовок, так что, надеюсь, это описание и следующий пример сделают его более понятным.
У меня есть таблица с ненулевым столбцом (но не первичным ключом), чейзначение представляет собой пятизначное число, хранящееся в виде строки, такой как «00001», «00002», «00003», ..., «99999».Присутствуют не все числа (возможно, в последовательности отсутствует число).Я пытаюсь сделать запрос таким, чтобы, если дать первые две цифры числа, я мог упорядочить оператор выбора в соответствии с соседними числами, начиная со среднего значения и работая наружу.
Вот пример (sql fiddle здесь ) того, что мне нужно, но, к сожалению, я не могу использовать инструкцию case, чтобы упорядочить результаты, поскольку случаи неизвестны заранее и их может быть немало.
select number_str_id from my_table
where number_str_id like '00%'
order by
case to_number(number_str_id)
when 1 then 9
when 2 then 7
when 3 then 5
when 4 then 3
when 5 then 1
when 6 then 2
when 7 then 4
when 8 then 6
when 9 then 8
end
asc;
Любые предложения с благодарностью.Спасибо!