Поделиться через


? : (Условный) (службы SSIS)

Возвращает одно из двух выражений на основе вычисления логического выражения. Если логическое выражение принимает значение TRUE, то возвращается результат вычисления первого выражения. Если логическое выражение принимает значение FALSE, возвращается результат вычисления второго выражения.

Синтаксис


boolean_expression?expression1:expression2
        

Аргументы

  • boolean_expression
    Любое допустимое выражение, результатом которого являются TRUE, FALSE или NULL
  • expression1
    Любое допустимое выражение.
  • expression2
    Любое допустимое выражение.

Типы результата

Тип данных expression1 или expression2. Дополнительные сведения см. в разделе Типы данных служб Integration Services.

Замечания

expression1 и expression2 должны иметь допустимый тип данных.

Если expression1 и expression2 имеют одинаковый тип данных, у результата тоже будет этот тип данных. Поддерживаются все типы данных SSIS. Применяются следующие дополнительные правила:

  • Тип данных DT_TEXT требует, чтобы expression1 и expression2 имели одну и ту же кодовую страницу.
  • Длина результата типа DT_BYTES равна длине более длинного аргумента.

Если expression1 и expression2 имеют различные типы данных, применяются следующие правила:

Наборы выражений expression1 и expression2 должны удовлетворять одному из следующих правил:

  • Числовой. Выражения expression1 и expression2 должны иметь числовой тип данных. В соответствии с правилами неявных числовых преобразований, выполняемых средством оценки выражений, пересечением типов данных должен быть числовой тип данных. NULL не может быть значением пересечения двух числовых типов данных. Дополнительные сведения см. в разделе Преобразование типа данных в выражениях.
  • Строковой. И expression1, и expression2 должны быть строкового типа. DT_STR или DT_WSTR. Вычисленные значения этих двух выражений могут иметь различные строковые типы данных. Результат будет иметь тип данных DT_WSTR с длиной более длинного аргумента.
  • Дата. Выражения expression1 и expression2 должны давать один из типов данных даты: DT_DBDATE, DT_DATE, DT_DBTIME, DT_DBTIMESTAMP или DT_FILETIME. Вычисленные значения этих двух выражений должны давать разные типы данных даты. Результат будет иметь тип данных DT_DBTIMESTAMP.

Если выражение boolean_expression оценивается как null, результат тоже будет примет значение NULL. Если выбранное выражение, будь то expression1 или expression2 , принимает значение NULL, результат также примет значение NULL. Если выбранное выражение не принимает значения NULL, а невыбранное принимает, результатом будет значение выбранного выражения.

Примеры

Этот пример показывает выражение, принимающее значение savannah или unknown в зависимости от условия.

@AnimalName == "Elephant"? "savannah": "unknown"

Этот пример показывает выражение, ссылающееся на столбец ListPrice. ListPrice имеет тип данных DT_CY. Это выражение умножает ListPrice на .2 или .1 по условию.

ListPrice < 350.00 ? ListPrice * .2 : ListPrice * .1

См. также

Основные понятия

Очередность и ассоциативность операторов

Другие ресурсы

Операторы (службы SSIS)

Справка и поддержка

Получение помощи по SQL Server 2005