Запросы для получения ряда чисел
В некоторых случаях бывает необходимо получить последовательность чисел от N до M (в последнее время что-то уж очень часто возникает такая необходимость :). Дабы самому не забыть решил перечислить известные мне способы:
-- Самый простой
Select Rownum
From User_Objects
Where Rownum <= 25;
-- Кол-во единичек в CUBE - степень двойки
Select Rownum
From (Select 1 From Dual Group By Cube(1, 1, 1, 1, 1))
Where Rownum <= 25;
-- С использованием иерархичного запроса
Select Level
From Dual
Connect By Level <= 25;
-- Только для 10 версии и выше
Select y from dual
model
dimension by (1 as x) measures (1 as y)
rules iterate (25) (y[iteration_number + 1] = iteration_number + 1);
Есть есть еще какие-либо решения - будет интересно посмотреть...
3 комментария:
А почему бы не использовать Oracle Sequence, он вроде как раз для получения ряда чисел и предназначен?
А почему бы не использовать Oracle Sequence, он вроде как раз для получения ряда чисел и предназначен?
Основное назначение Oracle Sequence - это, все таки, использование в авто-инкрементальных полях таблицы.
В запросе, используя только Oracle Sequence, получить последовательность чисел вряд ли получится, так как надо откуда-то запрашивать данные, то есть таблица.
самый простой способ не указан: pivot table
Отправить комментарий