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




SELECT employee_id, first_name, last_name, department_id, salary

FROM Employees

WHERE UPPER (first_name) = ′DAVID′;



Таблица 3.3. Функции обработки строк



Примеры использования функций обработки строк


Функции LPAD () и RPAD () можно использовать для отображения результата выполнения запроса в виде, который более удобен для восприятия.


Пример 3.12. Вывод данных о зарплате сотрудников без использования функций LPAD () и RPAD ()


SELECT first_name||′ ′||last_name || ′ has a monthly salary of ′

|| salary || ′ dollars. ′ AS Pay

FROM Employees;



Пример 3.13. Вывод данных о зарплате сотрудников c использованием функций LPAD () и RPAD ()


SELECT RPAD (first_name||′ ′||last_name,25)

|| ′ has a monthly salary of ′

|| LPAD (salary,6) || ′ dollars.» AS Pay

FROM Employees;



Рассмотрим более подробно функцию INSTR, которая часто используется при работе с символьными данными.

Функция INSTR возвращает номер позиции в строке str, начиная с которой строка search_str входит в строку str. Если вхождений не найдено, то функция возвращает значение 0. Синтаксис:


INSTR (str, search_str [, n [, m]])


– str – исходная строка;

– search_str – строка поиска;

– n – начало поиска, определяет начальную позицию, с которой следует начинать поиск;

– m – вхождение, определяет номер вхождения, который следует возвратить.


Пример 3.14. Использование функции INSTR для нахождения позиции первого пробела в названии товара


SELECT product_name, INSTR (product_name, ′ ′)

FROM Products;



Пример 3.15. Использование функции INSTR для нахождения позиции второго пробела в названии товара


SELECT product_name, INSTR (product_name, ′ ′,1,2)

FROM Products;



Используя функцию SUBSTR совместно с функцией INSTR, можно вывести часть строчного значения, которая состоит из одного или нескольких слов. Следует иметь в виду, что если название товара состоит из двух слов, то второй пробел найден не будет и этот товар не попадет в результат выполнения запроса.


Пример 3.16. Вывести первые два слова из названия товара


SELECT SUBSTR (product_name,1,

(INSTR (product_name, ′ ′,1,2) -1))

FROM Products;



Пример 3.17. Вывести названия товаров, первое слово которых состоит из трех символов


SELECT product_id, product_name

FROM Products

WHERE Length (SUBSTR (product_name,1,

(INSTR (product_name, ′ ′) -1))) =3;



Используя функцию INSTR, можно осуществлять поиск по части строчного значения.

Пример 3.18. Вывести данные о товарах, в названии которых есть слово Core


SELECT *

FROM Products

WHERE INSTR (UPPER (product_name), ′CORE»′> 0;


Типы даты и времени

Эти типы используются для работы с данными, представляющими собой даты с учетом времени. Тип Date является основным при работе с данными, представляющими собой дату и время. При использовании этого типа данные хранятся в формате DD-MM-YY HH: MI: SS, где:

DD – двузначное значение дня;

MM – двузначный номер месяца;

YY – две последние цифры года;

HH, MI, SS – двузначные значения часа, минуты и секунды.

При выводе значений данного типа по умолчанию отображается дата. Для получения текущей даты в формате Date используется функция SYSDATE.


Пример 3.19. Вывод текущей даты в формате по умолчанию


SELECT SYSDATE

FROM Dual;



Для отображения и обработки полного значения, содержащего время, используются специальные функции.

Пример 3.20. Вывод текущей даты с использованием функции TO_CHAR


SELECT TO_CHAR (SYSDATE, ′DD MONTH YYYY, HH24:MI: SS′)

As Date_Time