В приведенном выше примере в перечне возвращаемых столбцов после слова SELECT и в условии поиска после слова WHERE перед именем столбца через точку пишется название таблицы:
WHERE POKUPATELI.POKUP = RASHOD.POKUP
Намного лучше присвоить каждой таблице какое-нибудь краткое обозначение, псевдоним. Такие псевдонимы называются псевдонимами таблиц. Они определяются после имени каждой таблицы в указании списка таблиц-источников после слова FROM:
SELECT
FROM <таблица1 псевдоним1> [, < таблица2 псевдоним2>...]
WHERE...
Например, приведенный выше запрос после введения в него псевдонимов таблиц выглядит намного компактнее:
SELECT R.*, Р.ADRES
FROM RASHOD R, POKUPATELI P
WHERE P.POKUP = R.POKUP
Предложение ORDER BY - определение сортировки
Определить, по каким полям необходимо отсортировать записи в результирующем НД, можно, указав после предложения, следующего за словом WHERE, предложение
ORDER BY <список_столбцов>
Список столбцов должен содержать имена столбцов (разделенных через запятую), по которым будет производиться сортировка.
|
|
Пример. Выдать все записи отпуска товара "Кока-кола", отсортировав их по каждому покупателю
SELECT POKUP, DAT_RASH, TOVAR, KOLVO
FROM RASHOD
WHERE TOVAR = "Кока-кола"
ORDER BY POKUP
Пример. Выдать все записи из таблицы RASHOD, отсортировав их по каждому покупателю
SELECT POKUP, DAT_RASH, TOVAR, KOLVO
FROM RASHOD
ORDER BY POKUP
Пример. Выдать все записи из таблицы RASHOD, отсортировав их по каждому покупателю, для каждого покупателя - по товару, для каждого товара - по дате
SELECT POKUP, TOVAR, DAT_RASH, KOLVO
FROM RASHOD
ORDER BY POKUP, TOVAR, DAT_RASH
Устранение повторяющихся значений
Часто в результирующий НД необходимо включать не все записи с одинаковым значением какого-либо столбца (комбинации столбцов), а только одну из них. В этом случае после ключевого слова SELECT указывают ключевое слово DISTINCT
SELECT [DISTINCT | ALL] {* <значение1> [, <значение2>...]}
FROM <таблица1> [, < таблица2>...]
Повторяющимися считаются записи, содержащие идентичные значения во всех столбцах результирующего НД.
Наоборот, если в результирующий запрос нужно включить все записи, после слова SELECT указывают слово ALL. В InterBase нет необходимости использовать ALL явно, поскольку это значение действует по умолчанию.
Пример. Выдать наименования всех отпущенных со склада товаров SELECT DISTINCT TOVAR FROM RASHOD