Примеры запросов с использованием предиката match
Все примеры этого пункта основаны на запросе "Найти номера служащих и номера их отделов для служащих, для которых в отделе со "схожим" номером работает служащий со "схожей" датой рождения" c некоторыми уточнениями.
SELECT EMP_NO, DEPT_NO FROM EMP WHERE (DEPT_NO, EMP_BDATE) MATCH SIMPLE (SELECT EMP1.DEPT_NO, EMP1.EMP_BDATE FROM EMP EMP1 WHERE EMP1.EMP_NO <> EMP.EMP_NO);
Пример 14.25.
(html, txt)
Этот запрос вернет данные о служащих, про которых:
- либо неизвестны номер отдела или дата рождения (или и то, и другое);
- либо в отделе данного служащего работает по крайней мере еще один человек с той же датой рождения.
Если использовать предикат MATCH UNIQUE SIMPLE, то мы получим данные о служащих, про которых:
- либо неизвестны номер отдела или дата рождения (или и то, и другое);
- либо в отделе данного служащего работает еще один человек с той же датой рождения.
SELECT EMP_NO, DEPT_NO FROM EMP WHERE (DEPT_NO, EMP_BDATE) MATCH PARTIAL (SELECT EMP1.DEPT_NO, EMP1.EMP_BDATE FROM EMP EMP1 WHERE EMP1.EMP_NO <> EMP.EMP_NO);
Пример 14.26.
(html, txt)
Этот запрос вернет данные о служащих, про которых:
- либо неизвестны номер отдела и дата рождения;
- либо неизвестен номер отдела, но имеется по крайней мере еще один человек с той же датой рождения;
- либо неизвестна дата рождения, но в отделе данного служащего работает по крайней мере еще один человек;
- либо известны и номер отдела, и дата рождения, и в отделе данного служащего работает по крайней мере еще один человек с той же датой рождения.
Если использовать предикат MATCH UNIQUE PARTIAL, то мы получим данные о служащих, про которых:
- либо неизвестны номер отдела и дата рождения;
- либо неизвестен номер отдела, но имеется еще один человек с той же датой рождения;
- либо неизвестна дата рождения, но в отделе данного служащего работает еще один человек;
- либо известны и номер отдела, и дата рождения, и в отделе данного служащего работает еще один человек с той же датой рождения.
SELECT EMP_NO, DEPT_NO FROM EMP WHERE (DEPT_NO, EMP_BDATE) MATCH UNIQUE FULL (SELECT EMP1.DEPT_NO, EMP1.EMP_BDATE FROM EMP EMP1 WHERE EMP1.EMP_NO <> EMP.EMP_NO);
Пример 14.27.
(html, txt)
Этот запрос вернет данные о служащих, о которых:
- либо неизвестны номер отдела и дата рождения;
- либо в отделе данного служащего работает по крайней мере еще один человек с той же датой рождения.
Если использовать предикат MATCH UNIQUE SIMPLE, то мы получим данные о служащих, о которых:
- либо неизвестны номер отдела и дата рождения;
- либо в отделе данного служащего работает еще один человек с той же датой рождения.
Содержание раздела