Разработка баз данных в Delphi. 11 Уроков


 Устранение дублирования (модификатор DISTINCT)


Дублированными являются такие строки в результирующей таблице, в которых идентичен каждый столбец.

Иногда (в зависимости от задачи) бывает необходимо устранить все повторы строк из результирующего набора. Этой цели служит модификатор DISTINCT. Данный модификатор может быть указан только один раз в списке выбираемых элементов и действует на весь список.

SELECT job_code

FROM employee       получить список должностей сотрудников

JOB_CODE

========

VP      

Eng      

Eng     

Mktg    

Mngr    

SRep    

Admin   



Finan   

Mngr    

Mngr    

Eng

...

Данный пример некорректно решает задачу “получения” списка должностей сотрудников предприятия, так как в нем имеются многочисленные повторы, затрудняющие восприятие информации. Тот же запрос, включающий модификатор DISTINCT, устраняющий дублирование, дает верный результат.

SELECT DISTINCT job_code

FROM employee                   получить список должностей сотрудников

JOB_CODE

========

Admin   

CEO     

CFO     

Dir     

Doc      

Eng     

Finan   

Mktg    

Mngr    

PRel    

SRep    

Sales   

VP      

Два следующих примера показывают, что модификатор DISTINCT действует на всю строку сразу.

SELECT first_name, last_name

FROM employee

WHERE first_name = "Roger" получить список служащих,
                                                                            имена которых - Roger

FIRST_NAME      LAST_NAME           

=============== ====================

Roger           De Souza            

Roger           Reeves

SELECT DISTINCT first_name, last_name

FROM employee

WHERE first_name = "Roger" получить список служащих,
                                                                            имена которых - Roger

FIRST_NAME      LAST_NAME           

=============== ====================

Roger           De Souza            

Roger           Reeves



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