Delphi 3 и создание приложений баз данных


Устранение повторяющихся значений


Часто в результирующий НД необходимо включать не все записи с одинаковым значением какого-либо столбца (комбинации столбцов), а только одну из них. В этом случае после ключевого слова SELECT указывают ключевое слово DISTINCT

SELECT [DISTINCT | ALL] {* <значение1> [, <значение2> ...]}

FROM <таблица1> [, < таблица2> ...]

Повторяющимися считаются записи, содержащие идентичные значения во всех столбцах результирующего НД+.

Наоборот, если в результирующий запрос нужно включить все записи, после слова SELECT указывают слово ALL. В InterBase нет необходимости использовать ALL явно, поскольку это значение действует по умолчанию.

Пример.

Выдать наименования всех отпущенных со склада товаров (результат на рис. 25.9)

SELECT DISTINCT TOVAR FROM RASHOD

Рис. 25.9.

ЗАМЕЧАНИЕ.

Использование в запросе DISTINCT следует ограничивать, кроме случаев, когда это действительно необходимо. Так, в рассматриваемых ниже примерах для агрегатных функций по таблице RASHOD, часто невозможно обойтись без указания DISTINCT.

Причиной ограничений в применении DISTINCT является то обстоятельство, что его использование может резко замедлять выполнение запросов.



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