Immediate IF, который не замыкается, возвращает одно из двух значений в зависимости от того, имеет ли логическое выражение значение true или false в SQL Server 2012, Visual Basic и его вариантах.

Возвращает одно из двух значений в зависимости от того, является ли логическое выражение истинным или ложным в SQL Server 2012 и вариациях VB (VB6, VB.NET, VBA и VBScript).

Синтаксис


IIF ( boolean_expression, true_value, false_value )

Аргументы


  • boolean_expression - допустимое логическое выражение. Если этот аргумент не является логическим выражением, возникает синтаксическая ошибка.
  • true_value - значение, возвращаемое, если boolean_expression принимает значение true.
  • false_value - возвращаемое значение, если логическое_выражение принимает значение false.

Типы возврата


Возвращает тип данных с наивысшим приоритетом из типов в true_value и false_value (SQL Server). Visual Basic возвращаетObject.

Замечания


Для VB.NET более новый оператор If обычно является лучшим выбором, поскольку он использует оценку короткого замыкания.

SQL Server / TSQLL

IIFэто сокращенный способ написания выражения CASE. Он оценивает логическое выражение, переданное в качестве первого аргумента, а затем возвращает любой из двух других аргументов в зависимости от результата оценки. То есть true_value возвращается, если логическое выражение истинно, и false_value возвращается, если логическое выражение ложно или неизвестно. true_value и false_value могут быть любого типа. Те же правила, которые применяются к выражению CASE для логических выражений, обработки null и типов возвращаемых значений, также применяются к IIF. Дополнительные сведения см. В разделе CASE (Transact-SQL).

Дело в том, что IIFпереведен в CASE, также влияет на другие аспекты поведения этой функции. Поскольку выражения CASE могут быть вложенными только до уровня 10, операторы IIF также могут быть вложены только до максимального уровня 10. Кроме того,IIF передается на другие серверы как семантически эквивалентное выражение CASE со всем поведением удаленного выражения CASE.