SQL1

       

КОМАНДА FORMAT


Как мы подчеркивали в Главе 7, процесс вывода выполняемого в стандарте SQL, имеет ограничения. Хотя большинство реализаций включают SQL в пакеты, имеющие другие средства для управления этой функцией, некоторые реализации также используют команду типа FORMAT внутри SQL чтобы навязывать выводу запроса определённые формы структуры или ограничения.

Среди возможных функций команды FORMAT существуют такие:

  • определение ширины столбцов (при печати)
  • определение представления NULL-значений
  • обеспечение (новых) заголовков для столбцов
  • обеспечение заголовков внизу или вверху страниц, выводимых на печать
  • навязывает присвоение или изменение форматам полей, содержащих значения даты, времени или денежной суммы
  • вычисляет общие и промежуточные суммы, не исключая возможности обобщения поля, как это делает, например, SUM
  • (Альтернативным подходом к этой проблеме в некоторых программах является предложение COMPUTE.)

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

    Вот некоторые примеры команды FORMAT:

    FORMAT NULL '_ _ _ _ _ _ _'; FORMAT BTITLE 'Orders Grouped by Salesperson'; FORMAT EXCLUDE (2, 3);

    Первая команда NULL представляется в виде ' _ _ _ _ _ _ _ ' при выводе на печать; вторая вставляет заголовок 'Orders Grouped by Salesperson' в нижнюю часть каждой страницы; третья исключает второй и третий столбцы из вывода предыдущего запроса. Вы могли бы использовать последнюю, если выбираете конкретные столбцы, чтобы использовать их в предложении ORDER BY в вашем выводе. Так как указанные функции команды FORMAT могут выполняться по разному, все варианты их использования не могут быть здесь показаны.

    Имеются другие команды, которые могут использоваться для выполнения тех же функций. Команда SET подобна команде FORMAT; она является вариантом или дополнением к команде, которая применяется во всех запросах текущего сеанса пользователя, а не просто в одиночном запросе. В следующей реализации, команда FORMAT начинается ключевым словом COLUMN следующим образом:

    COLUMN odate FORMAT dd-mon-yy;

    что форсирует формат типа 10-Oct-90 в поле даты, использующемся в выводе запроса на печать. Предложение COMPUTE, упомянутое ранее, вставляется в запрос, следующим образом:

    SELECT odate, amt FROM Orders WHERE snum = 1001 COMPUTE SUM (amt);

    Оно выводит все заказы продавца Peel с датой и суммой приобретения по каждой дате, а в конце - общую сумму приобретений. Другая реализация выводит промежуточные суммы приобретений, используя COMPUTE в качестве команды. Сначала, она определяет разбивку

    BREAK ON odate;

    вывода вышеупомянутого запроса на страницы, сгруппировав по датам, поэтому все значения odate в каждой группе - одинаковые. Затем вы можете ввести следующее предложение:

    COMPUTE SUM OF amt ON odate;

    Столбец в предложении ON предварительно должен быть использован в команде BREAK.



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