? : (条件) (SSIS)
ブール式の評価に基づいて 2 つの式のうちのいずれかの式を返します。ブール式が TRUE に評価された場合、最初の式が評価対象となり、その結果が式の結果になります。ブール式が FALSE に評価された場合、2 番目の式が評価対象となり、その結果が式の結果になります。
構文
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 は、どちらも数値データ型である必要があります。データ型の積集合は、式エバリュエータが実行する暗黙的な数値変換に関する規則で指定されているように、数値データ型である必要があります。2 つの数値データ型の積集合を NULL にすることはできません。詳細については、「式のデータ型変換」を参照してください。
- 文字列。expression1 と expression2 は、どちらも DT_STR または DT_WSTR の文字列データ型である必要があります。2 つの式が評価される文字列データ型は、異なっていてもかまいません。DT_WSTR データ型の結果の長さは、長いほうの引数の長さと同じです。
- 日付。expression1 と expression2 はどちらも、DT_DBDATE、DT_DATE、DT_DBTIME、DT_DBTIMESTAMP、または DT_FILETIME データ型のうちのいずれかの日付データ型に評価される必要があります。2 つの式が評価される日付データ型は、異なっていてもかまいません。結果は DT_DBTIMESTAMP データ型です。
boolean_expression が NULL に評価された場合、式の結果は NULL になります。選択された、expression1 または expression2 式のどちらかが NULL の場合、結果は NULL になります。選択された式が NULL でなく、選択されていない式が NULL の場合、結果は選択された式の値になります。
例
この例では、条件に応じて savannah
または unknown
に評価される式を示しています。
@AnimalName == "Elephant"? "savannah": "unknown"
この例では、ListPrice 列を参照する式を示しています。ListPrice のデータ型は DT_CY です。式は ListPrice に .2 または .1 のどちらかを条件に応じて乗算します。
ListPrice < 350.00 ? ListPrice * .2 : ListPrice * .1