powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сортировка данных в таблице
5 сообщений из 5, страница 1 из 1
Сортировка данных в таблице
    #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
Сортировка данных в таблице
    #39713746
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
panthe,

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

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

Убери ограничение по количеству из запроса. Добавь его в FETCH.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сортировка данных в таблице
    #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
Сортировка данных в таблице
    #39714407
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
panthe,

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

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


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