Основы программирования в СУБД Oracle. SQL+PL/SQL. - страница 24

Шрифт
Интервал



Пример 2.40. Вывести пять строк с данными о продажах товаров с максимальными суммами


SELECT product_id, order_id, item_id, quantity, unit_price,

quantity*unit_price

FROM Order_Items

ORDER BY quantity*unit_price DESC

FETCH FIRST 5 ROWS ONLY;



Этот запрос содержит строку FETCH FIRST 5 ROWS ONLY, которая выбирает первые пять строк после сортировки. Этот оператор появился в Oracle 12.

Задачи для самостоятельного решения

1. Вывести данные о товарах, у которых столбец rating_p имеет значение 3 или 4, а price <1000.


2. Вывести first_name, last_name сотрудников, у которых first_name начинается на букву P и в last_name есть буква r.


3. Вывести значения столбцов employee_id, department_id, first_name, last_name, job_id, salary, department_id сотрудников, у которых зарплата salary> 9000 и работают в одном из отделов: 50, 80, 100.


4. Вывести содержимое столбца street_address в таблице Locations тех строк, у которых значение этого столбца начинается не с цифры.


5. Вывести first_name, last_name, job_id и суммарную зарплату за год в следующем виде:

Michael Hartstein занимает должность MK_MAN, и зарплата за год составляет 156 000.


6. Вывести значения столбцов employee_id, department_id, first_name, last_name, department_id, job_id, salary, bonus для сотрудников, у которых зарплата salary <10 000. Вычисляемый столбец bonus содержит размер премии, которая вычисляется по формуле: Salary * (1 +0.1 * rating_e). Выводимые данные упорядочить по размеру премии.


7. Вывести значения столбцов employee_id, department_id, first_name, last_name, job_id сотрудников, которые работают в отделах 50 или 80, но не являются менеджерами. Менеджерами являются те сотрудники, у которых столбец job_id содержит подстроку MAN.


8. Вывести значения столбцов employee_id, department_id, first_name, last_name, job_id, salary сотрудников, у которых код должности (job_id) имеет значение IT_PROG и зарплата имеет одно из значений (4800, 6000, 9000), а также о сотрудниках, у которых код должности (job_id) имеет значение SA_REP, а зарплата находится вне диапазона от 7000 до 9000.

Глава 3. Типы данных и встроенные функции

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