Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 48

Вывести последнюю и k-ю запись

21.05.2014, 08:21. Показов 2682. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал запрос который выводит первую запись!!!! Необходимо вывести последнюю и k-ю запись!!!!!

что нужно добавить!!!! ????

Oracle 11 SQL
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
SET SERVEROUTPUT ON  
DECLARE
knig_id VARCHAR2(4);
id_cind_book VARCHAR2(4);
name_book   VARCHAR2 (100);
name_autor VARCHAR2(100);
cena    NUMBER;
kol_vo  VARCHAR2(4);
dop_inf VARCHAR2(100);
CURSOR cur IS
SELECT *
FROM bibli.KNIGI;
 
BEGIN
OPEN cur;
FETCH cur  INTO knig_id, id_cind_book, name_book, name_autor, cena, kol_vo, dop_inf;
DBMS_OUTPUT.enable();
DBMS_OUTPUT.PUT_LINE( 'ID:'|| knig_id);
DBMS_OUTPUT.PUT_LINE( 'Код жанра: ' || id_cind_book );
DBMS_OUTPUT.PUT_LINE( 'Название книги: ' || name_book);
DBMS_OUTPUT.PUT_LINE( 'Автор: ' || name_autor);
DBMS_OUTPUT.PUT_LINE( 'Цена: ' || cena);
DBMS_OUTPUT.PUT_LINE( 'Количество: ' || kol_vo);
DBMS_OUTPUT.PUT_LINE( 'Дополнительная информация: ' || dop_inf);
 
CLOSE cur;
END;
Добавлено через 2 часа 10 минут
Пробую через цикл!!! Выводит те поля где id>13
Все работает, но только проблема в том что она выводит пустые поля!!!!
Oracle 11 SQL
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
SET SERVEROUTPUT ON 
DECLARE
knig_id VARCHAR2(4);
id_cind_book VARCHAR2(4);
name_book   VARCHAR2 (100);
name_autor VARCHAR2(100);
cena    NUMBER;
kol_vo  VARCHAR2(4);
dop_inf VARCHAR2(100);
CURSOR addresses_c IS
SELECT * FROM bibli.knigi
WHERE knig_id >13;
BEGIN
 
 
FOR rec IN addresses_c LOOP
 
DBMS_OUTPUT.PUT_LINE( 'ID:'|| knig_id);
DBMS_OUTPUT.PUT_LINE( 'Код жанра: ' || id_cind_book );
DBMS_OUTPUT.PUT_LINE( 'Название книги: ' || name_book);
DBMS_OUTPUT.PUT_LINE( 'Автор: ' || name_autor);
DBMS_OUTPUT.PUT_LINE( 'Цена: ' || cena);
DBMS_OUTPUT.PUT_LINE( 'Количество: ' || kol_vo);
DBMS_OUTPUT.PUT_LINE( 'Дополнительная информация: ' || dop_inf);
 
END LOOP;
END;
Выводит:
ID:
Код жанра:
Название книги:
Автор:
Цена:
Количество:
Дополнительная информация:
ID:
Код жанра:
Название книги:
Автор:
Цена:
Количество:
Дополнительная информация:

Почему он выводит так? чего не хватает!!!
Хотелось бы что бы он выводил как на картинке !
Миниатюры
Вывести последнюю и k-ю запись  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.05.2014, 08:21
Ответы с готовыми решениями:

вывести последнюю запись
В таблице существует такая запись: ФИО1 дата операция (приостановленно) ФИО1 дата операция (возобновленно) ФИО1 дата операция...

Вывести последнюю запись в подчиненной таблице
Всем привет. Подскажите пожалуйста, как в поле вывести последнее воинское звание присвоенное военнослужащему?

Выбрать последнюю запись и вывести вначале
Помогите пожалуйста. Есть таблица новостей, нужно составить sql запрос который бы выводил их так, что б последняя новость была в начале а...

9
25 / 25 / 10
Регистрация: 20.09.2009
Сообщений: 110
21.05.2014, 09:02
а ты уверен что в твоей таблице есть данные удовлетворяющие условию запроса
Цитата Сообщение от Дмитрий3Б Посмотреть сообщение
SELECT * FROM bibli.knigi
WHERE knig_id >13
0
 Аватар для KuKu
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
21.05.2014, 09:02
А какая связь между knig_id и курсором или rec?
0
25 / 25 / 10
Регистрация: 20.09.2009
Сообщений: 110
21.05.2014, 09:03
хотя я бред написал. если бы данных не было. цикл не выполнился бы
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
21.05.2014, 10:07
Цитата Сообщение от Дмитрий3Б Посмотреть сообщение
Почему он выводит так? чего не хватает!!!
Во втором варианте ты выводишь не значения полей строки курсора, а значения переменных, которым не присвоены значения. Что запросил, то и получил.
0
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 48
21.05.2014, 10:19  [ТС]
Ну я почему то так сразу и подумал!!! Но как мне сделать что бы эти значения взялись из моей таблицы?
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
21.05.2014, 11:16
Лучший ответ Сообщение было отмечено Дмитрий3Б как решение

Решение

Цитата Сообщение от Дмитрий3Б Посмотреть сообщение
как мне сделать что бы эти значения взялись из моей таблицы
Запись FOR rec означает, что на каждом шаге цикла очередная строка выбирается в RECORD rec с именами полей, которые соответствуют именам в SELECT. Соответственно и надо обращаться к полям record, т.е. rec.id (если поле называется id)
1
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 48
21.05.2014, 14:37  [ТС]
Спасибо за помощь Grossmeister!!!!! ) Все работает !

Добавлено через 4 минуты
Остается теперь вывести последнюю строку!!! Можно это сделать используя этот же код ?
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
21.05.2014, 14:47
Цитата Сообщение от Дмитрий3Б
Остается теперь вывести последнюю строку!!! Можно это сделать используя этот же код ?
Ну-у-у, это обычная задачка по программированию, даже без БД. Например, на каждом шаге цикла сохраняй значения в переменные. После выхода из цикла в переменных останется последнее значение.
0
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 48
21.05.2014, 14:54  [ТС]
Я сделал следующим образом. написал условие что бы выводил строку с максимальным id.
у меня в таблице 15 записей, но он почему то выводит 9.
Oracle 11 SQL
1
WHERE knig_id = (SELECT MAX(knig_id)FROM bibli.knigi);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.05.2014, 14:54
Помогаю со студенческими работами здесь

Как вывести самую последнюю запись при реляции HasMany
в таблице Таскс хранятся Задачи, в таблице Таймс хранятся время их выполнения. Ранее для одной Задачи хранилось только одно время...

Как вывести самую последнюю запись при реляции HasMany
в таблице Таскс хранятся Задачи, в таблице Таймс хранятся время их выполнения. Ранее для одной Задачи хранилось только одно время...

Поменять любую запись местами с последней и удалить последнюю запись.
Помогите пожалуйста! Мне для программы, которая использует records (записи), нужно написать процедуру, которая меняет любую запись...

Прочитать последнюю запись в БД
Есть БД (sql). В БД есть поле NM. Необходимо прочесть последнюю запись, добавить к ней + 1, и вывести в textbox (к примеру последняя...

Не попадаю на последнюю запись.
Программно запускаю две сохраненные процедуры: 1. Insert .... проходит нормально. 2. SELECT Top 1 * FROM MyTable Order By ID Desc. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru