(' Номер л/с абонента '|| AccountCD) AS Ab_Info, (' Код неисправности '|| FailureCD) AS Failure, CASE Executed
WHEN 0 THEN 'Заявка не погашена' ELSE 'Погашена' END FROM Request WHERE AccountCD='115705';. Результат выполнения запроса представлен на рис. 3.41.
|
REQUESTCD |
AB INFO |
|
2 |
Номер л/с абонента 115705 |
|
15 |
Номер л/с абонента 115705 |
|
16 |
Номер л/с абонента 115705 |
|
17 |
Номер л/с абонента 115705 |
|
18 |
Номер л/с абонента 115705 |
FAILURE
Код неисправности 1
Код неисправности 5
Код неисправности 3 Код неисправности 5
Код неисправности 3
CASE
Погашена
Погашена
Заявка не погашена Погашена
Погашена
Рис. 3.41. Результат выполнения запроса с простой операцией CASE
Пусть необходимо вывести информацию об оплатах со значением от 50 до 100 с указанием срока давности оплаты: если оплата была произведена до 1999 года, то вывести 'Давно', если оплата была произведена в 1999 или 2000 годах, то вывести 'Не очень давно', если позднее - 'Недавно'. Запрос с использованием операции CASE с поиском будет выглядеть следующим образом: SELECT PayFactCD, AccountCD, PaySum,
(CASE WHEN PayDate < '01.01.1999' THEN 'Давно' WHEN PayDate
BETWEEN '01.01.1999' AND '31.12.2000' THEN 'Не очень давно' ELSE 'Недавно' END) AS Oplata FROM PaySumma
WHERE PaySum BETWEEN 50 AND 100;. Результат выполнения запроса представлен на рис. 3.42.
|
PAYFACTCD |
ACCOUNTCD |
PAYSUM |
OPLATA |
|
1 |
005488 |
58,70 |
Недавно |
|
3 |
005488 |
56,00 |
Не очень давно |
|
7 |
136160 |
56,00 |
Не очень давно |
|
9 |
080047 |
80,00 |
Давно |
|
10 |
080047 |
80,00 |
Недавно |
|
12 |
080613 |
56,00 |
Недавно |
|
14 |
115705 |
58,70 |
Недавно |
|
15 |
136169 |
58,70 |
Недавно |
|
16 |
443069 |
80,00 |
Недавно |
|
27 |
080270 |
57,10 |
Давно |
|
29 |
005488 |
62,13 |
Не очень давно |
|
37 |
080270 |
58,10 |
Недавно |
|
42 |
080270 |
60,10 |
Недавно |
Рис. 3.42. Результат выполнения запроса с операцией CASE с поиском
предыдущаяследующая