共用方式為


運算式中的隱含資料類型轉換

當運算式評估工具自動將資料從一種資料類型轉換為另一種資料類型時,就會發生資料類型的隱含轉換。例如,如果將 smallint 與 int 做比較,就會先將 smallint 隱含轉換成 int,然後再執行比較。

當引數和運算元的資料類型不相容時,運算式評估工具無法執行隱含資料轉換。此外,運算式評估工具無法將任何值隱含轉換為布林。而必須使用轉換運算子隱含轉換引數和運算元。如需詳細資訊,請參閱<轉換 (SSIS 運算式):轉換 SSIS 資料類型>。

下圖顯示 BINARY 運算之隱含轉換的結果類型。此資料表中資料行和資料列的交集為具有左 (從) 和右 (至) 類型之運算元的二進位運算結果類型。

資料類型之間的隱含資料類型轉換

帶正負號和不帶正負號的整數之間的交集,應是大於任一引數的帶正負號整數。

運算子會比較字串、日期、布林和其他資料類型。在運算子比較兩個值之前,運算式評估工具會先執行某些隱含轉換。如需詳細資訊,請參閱下列主題:

使用單一引數之函數所傳回的結果與引數具有相同資料類型,但有下列例外狀況:

  • DAY、MONTH 和 YEAR 接受日期並傳回整數 (DT_I4) 結果。

  • ISNULL 接受任何 SSIS 資料類型的運算式,並傳回布林 (DT_BOOL) 結果。

  • SQUARE 和 SQRT 接受數值運算式並傳回非整數的數值 (DT_R8) 結果。

如果引數的資料類型相同,則結果為該類型。唯一的例外為關於兩個 DT_DECIMAL 資料類型的值的二進位運算結果,其會傳回 DT_NUMERIC 資料類型的結果。

外部資源

位於 pragmaticworks.com 的技術文件:SSIS 運算式小抄