Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сортировка данных в таблице / 5 сообщений из 5, страница 1 из 1
05.10.2018, 17:04
    #39713743
panthe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка данных в таблице
Включите в пакет процедуру, которая считывает из базы данных информацию о первых N (передать в параметре) по возрастанию стоимостей заказах и именах их покупателей. Вызовите процедуру пакета из безымянного блока.

Решение:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
create or replace package pac_price
 as
 procedure name_price
  (n in number);
end;
create or replace package body pac_price
 as
 procedure name_price
  (n in number)
  is
  cursor cur_ord is
  select cust.cname, ord.amt from cust, ord where cust.cnum = ord.cnum and rownum <= n order by ord.amt asc;  --неверно. 
--Этот запрос будет сначала выбирать первые n заказов, а затем их сортировать (сортировка всегда выполняется в последнюю
-- очередь), а требуется сначала отсортировать, а потом взять n первых заказов

 v_cname cust.cname%type;
 v_amt ord.amt%type;
  begin
  open cur_ord;
 loop
  fetch cur_ord into v_cname, v_amt;
  exit when (cur_ord%notfound);
  dbms_output.put_line(v_cname||' - '||v_amt);
 end loop;
 close cur_ord;
 end;
 end;


Как сначала отсортировать записи, а потом считать?
...
Рейтинг: 0 / 0
05.10.2018, 17:07
    #39713746
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка данных в таблице
panthe,

Bыкинь and rownum <= n и просто выйди из FOR CURSOR LOOP после чтения n строк.

SY.
...
Рейтинг: 0 / 0
05.10.2018, 17:18
    #39713752
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка данных в таблице
pantheКак сначала отсортировать записи, а потом считать?

Убери ограничение по количеству из запроса. Добавь его в FETCH.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.10.2018, 17:38
    #39713762
panthe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка данных в таблице
Dimitry Sibiryakov, я сделал так
select * from (select cust.cname, ord.amt from cust, ord where cust.cnum = ord.cnum and order by ord.amt asc) where rownum <=n;
...
Рейтинг: 0 / 0
08.10.2018, 14:06
    #39714407
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка данных в таблице
panthe,

имхо для малых n так луче из-за STOPKEY

.....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сортировка данных в таблице / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]