Базы данных Oracle - статьи

         

Команда BREAK


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

<команда BREAK> ::=

BRE[AK] {ON <элемент отчета>{ <действие>}}

<элемент отчета> ::=

<столбец> | <выражение> | ROW | REPORT

<действие> ::=

SKI[P] <количество строк> [<дубликаты>]

  | SKI[P] PAGE [<дубликаты>]

<дубликаты> ::=

NODUP[LICATES] | DUP[LICATES]

Команда BREAK без параметров выдает свои текущие параметры (параметры разрыва). Каждый последующий вызов BREAK с параметрами отменяет предыдущий. Для отмены параметров разрыва используется команда . Назначение опций команды BREAK описано в .

Таблица 7. Основные варианты вызова команды BREAK.



Конструкция Описание
ON <столбец> { <действие>}Задает действия, которые выполняются при изменении значения указанного столбца. Столбец задается по имени или псевдониму, без уточнения именем объекта. Если действие не указано, подавляется выдача повторяющихся значений и отмечается место, где выполняется вычисление, заданное в соответствующей команде .
ON <выражение> { <действие>}Задает действия, которые выполняются при изменении значения выражения из списка выбора. Выражение надо задавать буквально, как в списке выбора. Если действие не указано, подавляется выдача повторяющихся значений и отмечается место, где выполняется вычисление, заданное в соответствующей команде .
ON ROW <действие>{ <действие>}Задает действия, которые выполняются при выдаче каждой строки. Необходимо задать хотя бы одно действие.
ON REPORT { <действие>}Отмечает место в отчете, где SQL*Plus выполнит вычисление, заданное в соответствующей команде . Позволяет выдавать суммарные значения.
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 строк выбрано.


Содержание раздела