ВУЗ:
Составители:
Рубрика:
– 134 –
stockamount
22
(1row)
Команда IF/THEN/ELSE
В команде
IF/THEN/ELSE задаются два блока команд. Первый блок выполня-
ется в том случае, если условие истинно, а второй
если оно ложно. Синтаксис
команды
IF/THEN/ELSE приведен в листинге 6.30.
Листинг 6.30. Синтаксис команды IF/THEN/ELSE
CREATEFUNCTIONфункция(аргументы)RETURNSтипAS'
DECLARE
объявления
BEGIN
IFусловиеTHEN
команда;
[...]
ELSE
команда;
[...]
ENDIF;
END;
'LANGUAGE'plpgsql';
Функция в листинге 6.31 делает практически то же, что и функция в лис-
тинге 6.28: она также определяет код
ISBN по коду книги и номеру издания, со-
храняет его в переменной и получает количество экземпляров книги на складе.
Затем команда
IF/THEN/ELSE проверяет, является ли количество книг на
складе положительной величиной. Если число положительно, функция возвра-
щает
TRUE признак наличия книг на складе. В противном случае функция воз-
вращает
FALSE. Стоит напомнить, что функция in_stock() предназначена для
вызова из других функций, а возвращаемое значение должно интерпретиро-
ваться той функцией, из которой она была вызвана.
Листинг 6.31. Команда IF/THEN/ELSE
CREATEFUNCTIONin_stock(integer,integer)RETURNSbooleanAS'
DECLARE
‐‐Объявлениепсевдонимовдляаргументовфункции.
b_idALIASFOR$1;
b_editionALIASFOR$2;
‐‐ОбъявлениетекстовойпеременнойдлянайденногокодаISBN.
b_isbntext;
‐‐Объявлениецелочисленнойпеременнойдляколичестваэкземпля‐
ров.
stock_amountinteger;
BEGIN
‐‐КомандаSELECTINTOнаходитвтаблицеeditionsзапись.
‐‐укоторойкодкнигииномеризданиясовпадаютсаргументами
‐‐функции.КодISBNнайденнойзаписиприсваиваетсяпеременной.
SELECTINTOb_isbnisbnFROMeditionsWHERE
book_id=b_idANDedition=b_edition;
‐‐Проверить,небыллиполученныйкодISBNравенNULL.
Страницы
- « первая
- ‹ предыдущая
- …
- 132
- 133
- 134
- 135
- 136
- …
- следующая ›
- последняя »
