Инструментальная Система Управления Базами Данных руководство пользователя

Вид материалаРуководство пользователя

Содержание


19.5. Условные выражения
Операторы отношения
Логические (булевы) операторы
IF ((условие1) & (условие2)) THEN (выражение1)
IF ((условие1) | (условие2)) THEN (выражение1)
IF (NOT(условие1)) THEN (выражение1)
Подобный материал:
1   ...   45   46   47   48   49   50   51   52   53

19.5. Условные выражения


При создании формул в ИСУБД «CronosPlus» Вы можете использовать условные выражения, т.е. конструкцию IF-THEN-ELSE. Данная конструкция может иметь вид:

IF ([Выражение1]) THEN ([Выражение2]); /*если Выражение1 истинно, будет выполнено Выражение2*/

IF ([Выражение1]) THEN ([Выражение2]) ELSE ([Выражение3]); /*если Выражение1 истинно, будет выполнено Выражение2, иначе будет выполнено Выражение3*/

Выражение1 состоит из одного или нескольких выражений сравнения, которые объединены между собой посредством логических (булевых) операторов. При задании выражений сравнения используются переменные, константы и поля базы, значения которых сравниваются между собой с помощью операторов отношения. Например:

IF ((@A>@B) | (РГ11=15) | (@C#ЛЦ)) ...

Выражение2 и Выражение3 представляют собой некоторое действие или группу действий, таких как выполнение функции или оператора (если таких действий несколько, они отделяются друг от друга символом «;»). Несколько действий также могут быть объединены в группу посредством логических (булевых) операторов. Например:

...THEN ((@A:=@B) & (РГ11:= РГ11*2)) ELSE (@B:=@A);

Операторы отношения


Операторы отношения предназначены для сравнения двух величин. Выражение, в котором используются операторы отношения, всегда принимает одно из логических значений: «Истина» (1) или «Ложь» (0).




Оператор

Описание

Пример

=

Равно

Возвращает «Истина» (1), если значения двух сравниваемых величин равны.

IF (ЛЦ02=@A) THEN (@B:=10); /*если значения поля №2 базы ЛЦ и переменной @A равны, переменной @В будет присвоено значение "10"; в противном случае значение переменной @В не изменится*/

#

Не равно

Возвращает «Истина» (1), если значения двух сравниваемых величин не равны.

IF (@А#@В) THEN (@C:=@C+1) ELSE (@C:=1); /*если значения переменных @A и @В не равны, значение переменной @С будет увеличено на 1; в противном случае переменной @С будет присвоено значение "1"*/

>

Больше

Возвращает «Истина» (1), если значение величины, стоящей слева от оператора сравнения, больше величины, стоящей справа.

IF (ЛЦ02>@A) THEN (@B:=100); /*если значение поля №2 базы ЛЦ больше значения переменной @A, переменной @В будет присвоено значение "100"; в противном случае значение переменной @В не изменится*/

<

Меньше

Возвращает «Истина» (1), если значение величины, стоящей слева от оператора сравнения, меньше величины, стоящей справа.

IF (@А<@В) THEN (@C:=0) ELSE (@C:=15); /*если значение переменной @A меньше значения переменной @В, переменной @С будет присвоено значение "0"; в противном случае – значение "15"*/

Порядок выполнения операторов отношения: Больше, Меньше, Равно, Не равно.

Логические (булевы) операторы


При создании формул используются три логические (булевы) операции: логическое И (конъюнкция), логическое ИЛИ (дизъюнкция) и логическое отрицание. Для их выполнения применяются соответствующие операторы: &, |, NOT. Результатом каждой из трех логических операций является одно из логических значений Истина (1) или Ложь (0).

Операндами логических операторов могут служить выражения сравнения, поскольку, как говорилось выше, их значениями являются те же значения Истина (1) или Ложь (0). Например, можно использовать такое выражение: NOT(@А=2). Благодаря наличию скобок сначала выполняется оператор отношения, а затем полученное значение логически инвертируется (Истина в Ложь и наоборот).

Результат выполнения любого логического оператора может в свою очередь выступать в качестве операнда какого-то другого логического оператора. Например, NOT(@А=2) & (@В:=2). Порядок выполнения логических (булевых) операторов: логическое отрицание, логическое И, логическое ИЛИ.




Оператор

Описание

Пример

&

Логическое И

Используется для выполнения логической конъюнкции двух объектов и возвращает истинное значение, если оба объекта истины.

IF ((условие1) & (условие2)) THEN (выражение1); /* выражение1 будет выполнено только в том случае, если и условие1, и условие2 верны */

|

Логическое ИЛИ

Используется для выполнения логической дизъюнкции двух объектов и возвращает истинное значение, если хотя бы один из объектов является истинным.

IF ((условие1) | (условие2)) THEN (выражение1); /* выражение1 будет выполнено в том случае, если верно условие1 или условие2 (или они оба) */

NOT

Логическое отрицание

Используется для инвертирования значения логического выражения и возвращает истинное значение, если условие ложно.

IF (NOT(условие1)) THEN (выражение1); /* выражение1 будет выполнено только в том случае, если и условие1, не верно */