if

Назначение

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

Функция "if" очень часто используется в SRL для большинства аналитических проектов, поэтому полезно разобраться в принципе ее действия.

Синтаксис

if(значение,значение,[значение])

Аргументы

Для функции if необходимо наличие 2 аргументов, порядок которых имеет значение:

  1. Первый аргумент - оцениваемое условие. Используется булево выражение.

  2. Второй аргумент - возвращаемое значение, если условие первого аргумента равно "истина".

Функция также может принимать третий необязательный аргумент - возвращаемое значение, если условие первого аргумента равно "ложь".

Второй и третий аргументы должны принадлежать к одному типу данных, иначе PolyAnalyst Grid выдаст сообщение о том, что данные не согласуются.

В качестве аргументов для функции if можно использовать другие функции, т.е. выражения, не обязательно значения:

  1. в качестве первого аргумента можно использовать любое выражение, которое дает результат "истина" или "ложь" (даже булеву колонку);

  2. в качестве второго или третьего аргумента можно использовать другие функции.

Например, условие могло бы быть 1 = 1. Равна ли единица единице?

Этот пример всегда будет оценен как истина. В SRL, if(1 = 1, 2, [3]) всегда вернет 2 (второй аргумент), поскольку первый аргумент-условие всегда будет истинным.

Предположим, у нас есть булева колонка Пол, для которой муж. - истина, жен. - ложь. Можно использовать выражение SRL: if ([Пол], 123, [456]). Для каждой записи, PolyAnalyst произведет оценку значения колонки Возраст. Если значение истинно, условный оператор "if" вернет 123. В противном случае - 456.

Возвращаемое значение

Возвращаемое значение функции if - значение либо второго, либо третьего аргумента (если он используется). Тип данных возвращаемого значения основа на типах данных второго и третьего аргументов.

Функция возвращает нулевое значение, если один из аргументов нулевой.

Примеры

Выражение

Возвращаемое значение

if (1 > 2, "Hello",["Goodbye"])

"Goodbye" как строка

if (1 < 2, "Hello",["Goodbye"])

"Hello" как строка

if (истина, 1, [0])

1 целое число

if (ложь, 0, [1])

1 целое число

if (нулевое булево значение, 20, [30])

Нулевое целое число. В этом случае, когда PolyAnalyst оценивает условие первого аргумента, он определяет, что результат является нулевым, и в этом случае невозможно определить, возвращать ли 2-ой или 3-ий аргумент, поэтому возвращается нулевое значение.

if (1 = 0, if(1 = 1, 5, 6), [if(9 = 9, 20000, 4)])

20000 целое число. Сначала оценивается условие 1 = 0, оно является ложным. Далее оценивается 3 аргумент, который состоит из вложенной функции if. Итак, оценивается 9 = 9, что есть ИСТИНА, следовательно, 20000 - 3 аргумент, поэтому функция вернет 20000.