Создание приложений для работы с базами данных в сети____________549

Поскольку в списке можно использовать и вычисляемые поля, то можно запи-
сать, например, и такой оператор:

SELECT Fam AS Фамилия, 1999-Year_b AS Возраст FROM Pers ORDER BY
Возраст DESC

Если в списке после ORDER BY перечисляется несколько полей, то первое из
них — главное и сортировка проводится прежде всего по значениям этого поля. За-
писи, имеющие одинаковое значение первого поля упорядочиваются по значениям
второго поля и т.д. Например, оператор

SELECT Dep, Fam, Year_b FROM Pers ORDER BY Dep, Fam

сортирует записи прежде всего по отделам (значениям поля Dep), а внутри каждо-
го отдела — по алфавиту. Оператор

SELECT Dep, Fam, Year_b, Sex FROM Pers ORDER BY Dep, Sex, Fam
сортирует записи по отделам, полу и алфавиту. Оператор

SELECT Fam as Фамилия, 1999-Year b as Возраст, Sex as Пол
FROM Pers ORDER BY Пол, Возраст

сортирует записи по полу и возрасту сотрудников.

После ключевого слова Select в оператор могут вставляться ключевые слова
DISTINCT или ALL. Первое из них означает, что в результирующий набор данных
не включаются повторяющиеся записи. Повторяющимися считаются те записи, в
которых совпадают значения полей, перечисленных в списке оператора Select.
Ключевое слово ALL означает включение всех записей. Оно подразумевается по
умолчанию, так что вставлять его в оператор не имеет смысла. Приведем пример
использования DISTINCT. Оператор

SELECT DISTINCT Dep FROM Pers

выдаст список подразделений, в которых работают сотрудники.

В списке полей могут использоваться строковые константы и операция «||»,
означающая сцепление строк. Например, приведенный выше оператор можно за-
писать в виде:

SELECT DISTINCT "Отдел: " I I Dep FROM Pers

В этом случае в качестве результата будут выдаваться не просто названия от-
делов, а строки вида:

Отдел: Бухгалтерия

Если желательно в подобном виде выдавать значения полей, содержащих не
символы, а, например, числа, то можно воспользоваться функцией Cast, приводя-
щей поле к указанному в ней типу. Например, в операторе

SELECT Fam, "г.р.: " || Cast(Year_b AS CHAR(4)) FROM Pers

функция Cast преобразует значение числового поля Year_b в строку из четырех
символов. Результат будет выдаваться строками вида:

Иванов         .     г.р.: 1950

10.1.2.2 Совокупные характеристики

Оператор Select позволяет возвращать не только множество значений полей,
но и некоторые совокупные (агрегированные) характеристики, подсчитанные по
всем или по указанным записям таблицы. Одна из функций, возвращающих такие
совокупные характеристики, соипЦ<условие> ) — количество записей в таблице,
удовлетворяющих заданным условиям. Например, оператор

SELECT count(*) FROM Pers