Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Сортировка строк и чисел.  [new]
XYZ1
Guest
Добрый день, всем!

Есть набор сток или чисел. Как отсортировать их не создавая таблицы в базе?

Спасибо.
2 ноя 06, 14:00    [3347425]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка строк и чисел.  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116213
А в каком виде тогда хранится этот набор ?
2 ноя 06, 14:02    [3347438]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка строк и чисел.  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Типа этого? (числа - здесь = натуральные)
with t as (select '123' s from dual
union all select '9' from dual
union all select '12' from dual
union all select 'Вася' from dual)
select s from t
order by case when translate(s,'~0123456789','~') is null
  then to_number(s) else null end
 ,s
2 ноя 06, 14:26    [3347654]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка строк и чисел.  [new]
XYZ1
Guest
типа этого, но только сортировать нужно в процедурке. т.е если можно обойтись без динамического sql, то это хорошо.
2 ноя 06, 14:32    [3347706]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка строк и чисел.  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116213
XYZ1
типа этого, но только сортировать нужно в процедурке. т.е если можно обойтись без динамического sql, то это хорошо.


В примере orawish нет динамического sql
2 ноя 06, 14:36    [3347734]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка строк и чисел.  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
XYZ1
типа этого, но только сортировать нужно в процедурке. т.е если можно обойтись без динамического sql, то это хорошо.
А кто здесь говорит про динмамический sql??? Ответьте на вопрос dmidek-а и будет Вам счастье - ещё захлебнетесь в ответах ;))
2 ноя 06, 14:36    [3347737]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка строк и чисел.  [new]
XYZ1
Guest
а как быть, если значения в pl/sql таблице?
2 ноя 06, 14:42    [3347792]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка строк и чисел.  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18359
XYZ1
а как быть, если значения в pl/sql таблице?

1) Сделать select * from table(sql-typed-plsql_table) order by...
2) Воспользоваться pl/sql таблицей index by varchar2 и обойти ее от .first до .last
2 ноя 06, 14:45    [3347815]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка строк и чисел.  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116213
Тогда можно так

create or replace type scott.typ_num as table of number
/
declare
tab_num scott.typ_num := scott.typ_num(23, 11, 56);
tab_num_sort scott.typ_num;
begin
select * BULK COLLECT INTO tab_num_sort
from table(tab_num)
order by column_value;
FOR I IN 1..tab_num_sort.count
LOOP
dbms_output.put_line(tab_num_sort(I));
END LOOP;
END;
/
11
23
56
2 ноя 06, 14:47    [3347829]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить