? :(条件)(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 必须为数值数据类型。数据类型的交集必须为数值数据类型,该类型在表达式计算器执行隐式数值转换的规则中指定。两个数值数据类型的交集不能为空。有关详细信息,请参阅表达式中的数据类型转换。
- 字符串。expression1 和 expression2 必须为字符串数据类型:DT_STR 或 DT_WSTR。两个表达式的计算结果可以是不同的字符串数据类型。结果为 DT_WSTR 数据类型,其长度为较长参数的长度。
- 日期。expression1 和 expression2 的计算结果必须为日期数据类型之一:DT_DBDATE、DT_DATE、DT_DBTIME、DT_DBTIMESTAMP 或 DT_FILETIME。两个表达式的计算结果可以分属不同的日期数据类型。结果为 DT_DBTIMESTAMP 数据类型。
如果 boolean_expression 的计算结果为空,则表达式结果为空。如果选择的表达式(expression1 或 expression2 )为空,则结果为空。如果所选的表达式不为空,但其中未选择的表达式为空,则结果为所选表达式的值。
示例
以下示例显示根据条件计算结果为 savannah
或 unknown
的表达式。
@AnimalName == "Elephant"? "savannah": "unknown"
以下示例显示引用 ListPrice 列的表达式。ListPrice 具有 DT_CY 数据类型。表达式根据条件将 ListPrice 乘以 0.2 或 0.1。
ListPrice < 350.00 ? ListPrice * .2 : ListPrice * .1