Строки таблицы не имеют определенного порядка, следовательно, простой запрос возвращает строки в произвольном порядке. Упорядочить строки можно с помощью предложения ORDER BY.
SELECT [DISTINCT] {*, столбец [псевдоним], …}
FROM таблица
[WHERE условие]
[ORDERBY {столбец | псевдоним | позиция} [ASC | DESC]];
ORDER BY задает порядок вывода строк
ASC сортирует строки в порядке возрастания (значение по умолчанию)
DESC сортирует строки в порядке убывания
SQL> SELECT deptno, dname, loc FROM dept ORDER BY dname;
DEPTNO DNAME LOC
--------- -------------- -------------
10 ACCOUNTING NEW YORK
40 OPERATIONS BOSTON
20 RESEARCH DALLAS
30 SALES CHICAGO
По умолчанию строки сортируются в порядке возрастания:
§ Числовые значения – от меньшего к большему
§ Символьные значения – в алфавитном порядке
§ Даты – от более ранних к более поздним
§ Неопределенные значения выводятся последними
С помощью ключевого слова DESC можно вывести строки в порядке убывания:
§ Числовые значения – от большего к меньшему
§ Символьные значения – в обратном порядке
§ Даты – от более поздних к более ранним
§ Неопределенные значения выводятся первыми
Сортировать результат можно и по нескольким столбцам (до количества столбцов таблицы). Столбцы указываются через запятую. Порядок сортировки может быть разным для отдельных столбцов, в этом случае ключевое слово DESC следует указать после имени столбца или его позиции.
SQL> SELECT job, ename FROM emp
2 WHERE job<='CLERK'
3 ORDER BY job DESC, ename;
JOB ENAME
--------- ----------
CLERK ADAMS
CLERK JAMES
CLERK MILLER
CLERK SMITH
ANALYST FORD
ANALYST SCOTT
Простой блок запроса может быть усилен функциями, которые предназначены для манипулирования данными:
· Выполнение расчетов
· Изменение данных
· Изменение формата вывода даты
· Преобразование типов данных
Функции в SQL бывают двух типов:
· Однострочные – функции, которые работают с одной строкой и выдают результат для каждой строки
· Многострочные – функции, которые работают с группами строк и выдают результат для группы строк
Однострочные функции предназначены для работы с элементами данных. Они принимают в качестве аргументов константы, значения переменных, имена столбцов, выражения и возвращают по одному значению для каждой строки, выбранной запросом. Однострочные функции могут изменять тип данных и могут быть вложенными. Они используются в предложениях SELECT, WHERE, ORDER BY.
Однострочные функции могут быть:
· Символьные
· Числовые
· Для работы с датами
· Функции преобразования
Символьные функции принимают в качестве аргументов символьные данные и возвращают символьное или числовое значение.
Функция |
Описание |
LOWER (столбец | выражение) |
Преобразует символы в нижний регистр |
UPPER (столбец | выражение) |
Преобразует символы в верхний регистр |
INITCAP (столбец | выражение) |
Преобразует первые буквы слов в верхний регистр, остальные – в нижний |
CONCAT (столбец1 | выражение1, столбец2 | выражение2) |
Объединяет первое символьное значение со вторым (аналогично ||) |
SUBSTR (столбец | выражение, m[, n]) |
Возвращает n символов из символьного значения, начиная с позиции m. Если n опущено, возвращается остаток символьного значения от позиции m до конца строки. Если m отрицательно, отсчет начинается от конца символьного значения |
LENGTH (столбец | выражение) |
Возвращает количество символов в символьном значении |
SQL> SELECT ename, job, sal FROM emp WHERE job='clerk';
no rows selected
SQL> SELECT ename, job, sal FROM emp WHERE LOWER(job)='clerk';
ENAME JOB SAL
---------- --------- ----------
SMITH CLERK 800
ADAMS CLERK 1100
JAMES CLERK 950
MILLER CLERK 1300
Числовые функции принимают в качестве аргументов числовые значения и возвращают числовое значение.
Функция |
Описание |
ROUND (столбец | выражение[, n]) |
Округляет значения столбца или выражение до n десятичных знаков. Если n опущено, то до целого. Если n отрицательно, то округляется целая часть |
TRUNC (столбец | выражение[, n]) |
Усекает значения столбца или выражение до n десятичных знаков. Если n опущено, то до целого. Если n отрицательно, обнуляются разряды целой части |
MOD (m, n) |
Возвращает остаток от деления m на n |
SQL> SELECT ename, job, sal FROM emp WHERE ename='JAMES';
ENAME JOB SAL
---------- --------- ----------
JAMES CLERK 950
SQL> SELECT ename, job, ROUND(sal, -2) FROM emp WHERE ename='JAMES';
ENAME JOB ROUND(SAL,-2)
---------- --------- -------------
JAMES CLERK 1000
SQL> SELECT ename, job, TRUNC(sal, -2) FROM emp WHERE ename='JAMES';
ENAME JOB TRUNC(SAL,-2)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.