SQL Plus: Создание и выполнение сценариев - Команда BREAK
ОГЛАВЛЕНИЕ
Команда BREAK
Команда BREAK позволяет разбить выдаваемые строки на группы по значению столбца, разделяя группы пустыми строками, а также управлять выдачей дублирующихся значений и значений, подсчитанных с помощью команды COMPUTE. Она имеет следующий синтаксис:
- <команда BREAK> ::=
- BRE[AK] {ON <элемент отчета>{ <действие>}}
- <элемент отчета> ::=
- <столбец> / <выражение> / ROW / REPORT
- <действие> ::=
- SKI[P] <количество строк> [<дубликаты>]
/ SKI[P] PAGE [<дубликаты>] - <дубликаты> ::=
- NODUP[LICATES] / DUP[LICATES]
Команда BREAK без параметров выдает свои текущие параметры (параметры разрыва). Каждый последующий вызов BREAK с параметрами отменяет предыдущий. Для отмены параметров разрыва используется команда CLEAR BREAKS. Назначение опций команды BREAK описано в табл. 7.
Таблица 7. Основные варианты вызова команды BREAK.
Конструкция | Описание |
ON <столбец> { <действие>} | Задает действия, которые выполняются при изменении значения указанного столбца. Столбец задается по имени или псевдониму, без уточнения именем объекта. Если действие не указано, подавляется выдача повторяющихся значений и отмечается место, где выполняется вычисление, заданное в соответствующей команде COMPUTE. |
ON <выражение> { <действие>} | Задает действия, которые выполняются при изменении значения выражения из списка выбора. Выражение надо задавать буквально, как в списке выбора. Если действие не указано, подавляется выдача повторяющихся значений и отмечается место, где выполняется вычисление, заданное в соответствующей команде COMPUTE. |
ON ROW <действие>{ <действие>} | Задает действия, которые выполняются при выдаче каждой строки. Необходимо задать хотя бы одно действие. |
ON REPORT { <действие>} | Отмечает место в отчете, где SQL*Plus выполнит вычисление, заданное в соответствующей команде COMPUTE. Позволяет выдавать суммарные значения. |
SKIP <количество строк> | Пропускает указанное количество строк (вставляет столько пустых строк) перед строкой, в которой происходит разрыв. |
SKIP PAGE | Пропускает столько строк, сколько задано в качестве размера страницы (задается с помощью SET PAGESIZE). После последней строки данных строки не пропускаются. |
NODUPLICATES | Выдает пробелы вместо значения в столбце, если оно совпадает со значением в предыдущей строке. |
DUPLICATES | Выдает значение столбца в каждой строке, независимо от дублирования. |
Конструкцию ON <столбец> можно задавать в одной команде BREAK несколько раз. При этом столбцы проверяются в порядке указания. Действия же выполняются в обратном порядке, от самого внутреннего разрыва. Если при вводе необходимо перенести опции на следующую строку, укажите дефис (-) в конце первой строки.
Обычно команда используется с операторами SELECT, содержащими конструкцию ORDER BY. Рассмотрим пример (обратите внимание на пустые строки):
SQL> break on deptno skip on sal skip 1
SQL> break
break on deptno пропустить 1 nodup
on sal пропустить 1 nodup
SQL> select deptno, ename, sal from emp order by deptno;
DEPTNO ENAME SAL
---------- ---------- ----------
10 CLARK 2450
KING 5000
MILLER 1300
20 SMITH 800
ADAMS 1100
FORD 3000
SCOTT
JONES 2975
30 ALLEN 1600
BLAKE 2850
MARTIN 1250
JAMES 950
DEPTNO ENAME SAL
---------- ---------- ----------
30 TURNER 1500
WARD 1250
14 строк выбрано.