- •Лабораторная работа 5
- •Агрегатные функции
- •Функции одной строки
- •Числовые функции
- •Символьные функции
- •Строковые функции, которые возвращают числовые значения
- •Функции даты
- •Функции преобразования
- •Другие функции одной строки
- •Фразы group by и having
- •Синтаксис:
- •Назначение
- •Фраза order by
- •Синтаксис:
- •Назначение
- •Описание и примеры
- •Агрегатные функции
- •Фразы group by и having
- •Фраза order by
- •Варианты заданий
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант4
- •Вариант5
- •Вариант6
- •Вариант7
- •Вариант8
- •Вариант9
- •Вариант10
- •Вариант11
- •Вариант12
- •Вариант13
- •Вариант14
- •Вариант15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Контрольные вопросы
Строковые функции, которые возвращают числовые значения
Функция |
Синтаксис |
Назначение |
Пример |
INSTR |
|
Производит поиск в строке char1, начиная с позиции n, m-го вхождения строки char2 и возвращает позицию символа в char1, в которой такое вхождение первого символа из char2 найдено. Если n отрицательный, Oracle производит поиск с конца строки char1. Значение m должно быть положительным. По умлочанию |
SELECT INSTR('CORPORATE FLOOR','OR','3','2') FROM DUAL; |
значения n и m равны 1; это означает, что Oracle производит поиск, начиная с первого символа char1 и отыскивает первое вхождение строки char2. Возвращаемое значение вычисляется относительно начала строки char1 не зависимо от значения n и выражается в количестве символов. Если поиск оказался безуспешным (то есть char2 не присутствует m раз после n-го символа char1) то возвращается значение 0. | |||
LENGTH |
Возвращает длину char в количестве символов. Если char имеет тип CHAR, то в длину включаются все расположенные справа пробелы. Если char равно null, то функция возвращает null. |
SELECT INSTR('CORPORATE FLOOR','OR','3','2') FROM DUAL; | |
ASCII |
Возвращает десятичное представление первого символа из char в наборе символов базы данных. |
SELECT ASCII('Q') FROM DUAL; |
Функции даты
Функции даты оперируют со значениями типа DATE. Все функции даты возвращают значение типа DATE, за исключением MONTHS_BETWEEN, которая возвращает число.
Функция |
Синтаксис |
Назначение |
Пример |
ADD_ MONTHS |
|
Возвращает дату d плюс n месяцев. Аргумент n может быть любым целым числом. Если d последний день месяца или если результирующий месяц содержит меньше дней, чем компонента дня в d, то результат будет содержать последний день результирующего месяца. В противном случае результат будет иметь ту же компоненту дня, что и d. |
SELECT TO_CHAR( ADD_MONTHS(Hiredate,1), 'DD-MON-YYYY') FROM TEACHER WHERE Name = 'John'; |
LAST_ DAY |
|
Возвращает дату с последним днем месяца из d. Можно использовать эту функцию для определения сколько дней осталось в текущем месяце. |
SELECT SYSDATE, LAST_DAY(SYSDATE), LAST_DAY(SYSDATE)-SYSDATE FROM DUAL; |
NEXT_ DAY |
|
Возвращает дату того дня недели, который указан в char и который следует за датой d. Аргумент char должен быть названием дня недели, в полном виде или сокращенном, заданным согласно языка, используемого в вашем сеансе работы. |
SELECT NEXT_DAY( '15-MAR-98','TUESDAY') AS "NEXT DAY" FROM DUAL; |
MONTHS_ BETWEEN |
|
Возвращает количество месяцев между датами d1 и d2. Если дата d1 позже, чем дата d2, то результат положителен; если раньше, то отрицателен. Если d1 и d2 содержат либо одну и ту же компоненту дня, либо указанные дни являются последними в месяце, то результат всегда целое число. В противном случае Oracle дробную часть месяцев с на основе 31-дневного месяца и с учетом разницы в компонентах времени дат d1 и d2 |
SELECT MONTHS_BETWEEN ( TO_DATE('28.10.2002', 'DD.MM.YYYY'), TO_DATE('28.10.2002', 'DD.MM.YYYY')) FROM DUAL
|
NEW_ TIME |
|
Возвращает дату и время во временной зоне z2, когда дата и время в временной зоне z1 равна d. Аргументы z1 и z2 могут быть следующими текстовыми строками: AST, ADT - Atlantic Standard or Daylight Time BST, BTD - Bering Standard or Daylight Time CST, CDT - Central Standard or Daylight Time EST, EDT - Eastern Standard or Daylight Time GMT - Greenwich Mean Time HST, HDT - Alaska-Hawaii Standard Time or Daylight Time MST, MDT - Mountain Standard or Daylight Time NST - Newfoundland Standard Time PST, PDT - Pacific Standard or Daylight Time YST, YDT - Yukon Standard or Daylight Time | |
SYSDATE |
|
Возвращает текущую дату и время. Аргументы отсутствуют. Эту функцию нельзя использовать в условии ограничения CHECK. |
SELECT TO_CHAR(SYSDATE, 'DD-MM-YYYY HH24:MI:SS)' FROM DUAL; |