Изучаем sql


> WHERE avail_balance BETWEEN 500 AND 2500



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

> WHERE avail_balance BETWEEN 500 AND 2500;
++
| cust_id |
++
| 1 |
| 2 |
| 3 |
| 4 |
| 8 |
| 9 |
| 7 |
| 11 |
| 1 |
| 1 |
| 2 |
| 3 |
| 3 |
| 4 |
| 4 |
| 5 |
| 9 |
++
17 rows in set (0.00 sec)
При виде результатов становится очевидным, что порядок разных опе
раторов работы с множествами в составном запросе 
действительно
имеет значение. В общем, составные запросы из трех или больше за
просов оцениваются в порядке сверху вниз, но с учетом следующих по
яснений:

По спецификации SQL ANSI из всех операторов работы с множест
вами первым выполняется оператор 
intersect
.

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


Упражнения
121
обработки составных запросов по умолчанию (сверху вниз) запросы,
расположенные рядом, можно заключить в скобки:
(SELECT cust_id
FROM account
WHERE product_cd IN ('SAV', 'MM')
UNION ALL
SELECT a.cust_id
FROM account a INNER JOIN branch b
ON a.open_branch_id = b.branch_id
WHERE b.name = 'Woburn Branch')
INTERSECT
(SELECT cust_id
FROM account
WHERE avail_balance BETWEEN 500 AND 2500
EXCEPT
SELECT cust_id
FROM account
WHERE product_cd = 'CD'
AND avail_balance < 1000);
Для этого составного запроса первый и второй запросы комбинируют
ся оператором 
union
all
, затем третий и четвертый запросы – операто
ром 
except
, и, наконец, для формирования окончательного результи
рующего набора результаты этих двух операций комбинируются с по
мощью оператора 
intersect
.
Упражнения
Следующие упражнения призваны протестировать понимание опера
ций с множествами. Ответы на эти упражнения приведены в приложе
нии С.
6.1
Имеются множество 
A
=
{L
M
N
O
P}
и множество 
B
=
{P
Q
R
S
T}
. Какие мно
жества будут получены в результате следующих операций:


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




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

    Басты бет