У меня получился такой запрос, поискав по интернету.
Передел под свой.
select
decode(translate(some_column, '_0123456789abcdefghijklmnoprstuvwxyz', '_'), null, to_char(some_column)) colum
from
( select '123abcd5' as some_column from dual union all
select '50e2fgh' as some_column from dual union all
select '502kl23m1' as some_column from dual union all
select '502fd456h' as some_column from dual
)
order by
decode(translate(some_column, '_0123456789abcdefghijklmnoprstuvwxyz', '_'), null, to_char(some_column));
Надо сделать так чтобы в этом столбце:
123abcd5
50e2fgh
502kl23m1
502fd456h
когда разные числа, то сортируется по числам (50 123)
Когда одинаковые числа (502 502) то СОРТИРУЕТСЯ ПО ПЕРВОЙ БУКВЕ В ВЫРАЖЕНИИ.
В результате должно быть так!
50e2fgh
123abcd5
502fd456h
502kl23m1
Есть ли у кого какие нибудь мысли ?
Вроде как и легко не что то не выходит ни фига, недельку просидел, решил написать сюда.
И есть еще один запрос
select
decode(translate(some_column, '_0123456789abcdefghijklmnoprstuvwxyz', '_'), null, to_char(some_column)) colum,
decode(translate(some_column, '_0123456789abcdefghijklmnoprstuvwxyz', '_'), null, to_char(some_column)) colum
from
( select '123abcd5' as some_column from dual union all
select '50e2fgh' as some_column from dual union all
select '502kl23m1' as some_column from dual union all
select '502fd456h' as some_column from dual
)
order by
decode(translate(some_column, '_0123456789abcdefghijklmnoprstuvwxyz', '_'), null, to_char(some_column)),
decode(translate(some_column, '_0123456789abcdefghijklmnoprstuvwxyz', '_'), null, to_char(some_column));
из которого мы получим
COLUM COLUM
--------- ---------
123abcd5 123abcd5
50e2fgh 50e2fgh
502fd456h 502fd456h
502kl23m1 502kl23m1
два одинаковых столбца, а мне надо чтобы было 2 или три разных, т.е. второй полученный столбец должен выводиться с другими данными.