? :(条件)(SSIS)

根据布尔表达式的计算结果,返回两个表达式之一。如果布尔表达式的计算结果为 TRUE,则计算第一个表达式,结果为该表达式的结果。如果布尔表达式的计算结果为 FALSE,则计算第二个表达式,结果为该表达式的结果。

语法


boolean_expression?expression1:expression2
        

参数

boolean_expression

计算结果为 TRUE、FALSE 或 NULL 的任意有效表达式。

expression1

任何有效的表达式。

expression2

任何有效的表达式。

结果类型

expression1expression2 的数据类型。有关详细信息,请参阅 Integration Services 数据类型

备注

expression1expression2 的计算结果必须为有效的数据类型。

如果 expression1expression2 的数据类型相同,则结果便为该数据类型。支持所有 SSIS 数据类型。适用以下附加规则:

  • DT_TEXT 数据类型要求 expression1expression2 具有相同的代码页。
  • DT_BYTES 数据类型的结果长度是较长参数的长度。

如果 expression1expression2 的数据类型不相同,则适用下列规则:

表达式集(expression1expression2)必须遵守下列规则之一:

  • 数值。expression1expression2 必须为数值数据类型。数据类型的交集必须为数值数据类型,该类型在表达式计算器执行隐式数值转换的规则中指定。两个数值数据类型的交集不能为空。有关详细信息,请参阅表达式中的数据类型转换
  • 字符串。expression1expression2 必须为字符串数据类型:DT_STR 或 DT_WSTR。两个表达式的计算结果可以是不同的字符串数据类型。结果为 DT_WSTR 数据类型,其长度为较长参数的长度。
  • 日期。expression1expression2 的计算结果必须为日期数据类型之一:DT_DBDATE、DT_DATE、DT_DBTIME、DT_DBTIMESTAMP 或 DT_FILETIME。两个表达式的计算结果可以分属不同的日期数据类型。结果为 DT_DBTIMESTAMP 数据类型。

如果 boolean_expression 的计算结果为空,则表达式结果为空。如果选择的表达式(expression1expression2 )为空,则结果为空。如果所选的表达式不为空,但其中未选择的表达式为空,则结果为所选表达式的值。

示例

以下示例显示根据条件计算结果为 savannahunknown 的表达式。

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

以下示例显示引用 ListPrice 列的表达式。ListPrice 具有 DT_CY 数据类型。表达式根据条件将 ListPrice 乘以 0.2 或 0.1。

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

请参阅

概念

运算符优先级和结合性

其他资源

运算符 (SSIS)

帮助和信息

获取 SQL Server 2005 帮助