Создайте отчет, содержащий уровни управления компанией, начиная с наивысшего уровня и добавляя отступ для каждого из следующих уровней.
Номера уровней узлам дерева назначаются начиная от корня. Чтобы вывести иерархический отчет в виде дерева с отступами, используйте функцию LPAD вместе с псевдостолбцом LEVEL. Элементы синтаксиса в примере на рисунке:
-
LPAD(char1,n [,char2])
возвращаетchar1
, с заполнением слева до позицииn
последовательностью символов, определенных вchar2
. Аргументn
является общей длиной возвращаемого значения для отображения на экране терминала. -
LPAD(last_name, LENGTH(last_name)+(LEVEL*2)-2,'_')
определяет формат отображения. -
char1
– это фамилия (LAST_NAME
), общая длина возвращаемого значенияn
– это длинаLAST_NAME +(LEVEL*2)-2
, аchar2
– это ‘_’.
Этот оператор сообщает SQL, что нужно взять значение LAST_NAME
и дополнить его слева символами ‘_’, пока длина результирующей строки не станет равна значению, определенному выражением LENGTH(last_name)+(LEVEL*2)-2
.
Для King LEVEL = 1
. Следовательно, (2 * 1) – 2 = 2 – 2 = 0. Поэтому перед фамилией King символы ‘_’ не используются, и эта фамилия появляется в столбце 1.
Для Kochhar LEVEL = 2
. Следовательно, (2 * 2) – 2 = 4 – 2 = 2. Поэтому перед фамилией Kochhar вставляется два символа ‘_’, и перед ней появляется отступ.
Оставшиеся записи таблицы EMPLOYEES
выводятся аналогично.
Далее: Сохранение инструкций SQL