if

Назначение

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

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

Функция "if" - логическая функция.

Синтаксис

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

Аргументы

Для функции if необходимо наличие 3 аргументов. Порядок их следования важен. У каждого аргумента свое назначение.

  1. Первый аргумент - условие, подлежащее оценке. Результатом должно быть булево выражение - ЛОЖЬ/ИСТИНА.

  2. Второй аргумент - возвращаемое значение, если условие первого аргумента ИСТИНА.

  3. Третий аргумент - возвращаемое значение, если условие первого аргумента ЛОЖЬ. Второй и третий аргументы должны принадлежать к одному типу данных, иначе PolyAnalyst выдаст сообщение о том, что данные не согласуются.

Второй и третий аргументы могут быть функциями, не обязательно значениями.

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

Например, условие могло бы быть 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.