Изучаем sql



Pdf көрінісі
бет104/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   100   101   102   103   104   105   106   107   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

SELECT emp_id
FROM employee
WHERE assigned_branch_id = 2
AND (title = 'Teller' OR title = 'Head Teller')
EXCEPT
SELECT DISTINCT open_emp_id
FROM account


Операторы работы с множествами
117
WHERE open_branch_id = 2;
++
| emp_id |
++
| 11 |
| 12 |
++
2 rows in set (0.01 sec)
В этом варианте запроса результирующий набор включает три строки
из результирующего набора первого запроса минус сотрудник с ID,
равным 10, который присутствует в результирующих наборах обоих
запросов. В спецификации SQL ANSI также описан оператор 
except
all
,
но опять же он реализован только в DB2 Universal Server IBM.
В операторе 
except
all
есть небольшая хитрость. Вот пример, показы
вающий, как обрабатываются дублирующие данные. Скажем, есть два
множества данных, имеющих следующий вид:
Множество A
++
| emp_id |
++
| 10 |
| 11 |
| 12 |
| 10 |
| 10 |
++
Множество B
++
| emp_id |
++
| 10 |
| 10 |
++
В результате операции 
A
except
B
получаем следующее:
++
| emp_id |
++
| 11 |
| 12 |
++
Если изменить операцию и применить 
A
except
all
B
, увидим следующее:
++
| emp_id |
++
| 10 |
| 11 |


118
Глава 6. Работа с множествами
| 12 |
++
Следовательно, разница между этими двумя операциями в том, что 
ex
cept
удаляет все экземпляры дублирующихся данных из множества А,
тогда как 
except
all
удаляет из множества А только один экземпляр дуб
ликата данных для каждого экземпляра дубликата данных множества В.


Достарыңызбен бөлісу:
1   ...   100   101   102   103   104   105   106   107   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет