執行比較以判斷兩個表達式是否相等。 運算式評估工具會在執行比較之前,自動轉換許多資料類型。 如需相關資訊,請參閱 Integration Services Data Types in Expressions。
但是,某些資料類型要求運算式先包含明確轉換,才能成功評估運算式。 如需在資料類型間合法轉換的詳細資訊,請參閱 Cast (SSIS 運算式)。
語法
expression1 == expression2
論點
expression1, expression2
為任何有效運算式。
結果類型
DT_BOOL
備註
如果比較中的任一個運算式為 Null,則比較結果為 Null。 如果兩個運算式都是 Null,結果則為 Null。
運算式集 expression1 與 expression2必須遵循下列規則之一:
數值 — expression1 與 expression2 都必須是數值資料類型。 數據類型的交集必須是數值數據類型,如表達式評估工具所執行之隱含數值轉換規則中所指定。 兩個數值資料類型的交集不能是 Null。 如需相關資訊,請參閱 Integration Services Data Types in Expressions。
字元 : expression1 和 expression2 都必須評估為 DT_STR 或 DT_WSTR 資料類型。 兩個運算式可以評估為不同的字串資料類型。
備註
字串比較有區分大小寫、腔調字、假名與全半形。
日期、時間或日期/時間expression1 和 expression2 都必須評估為下列其中一種數據類型:DT_DBDATE、DT_DATE、DT_DBTIME、DT_DBTIME2、DT_DBTIMESTAMP、DT_DBTIMESTAMP2、DT_DBTIMESTAPMOFFSET或DT_FILETIME。
備註
系統不支援評估為時間資料類型之運算式與評估為日期或日期/時間資料類型之運算式之間的比較。 系統會產生錯誤。
比較運算式時,系統會以列出的順序套用下列轉換規則:
當兩個運算式評估為相同的資料類型時,會擲行該資料類型的比較。
如果一個運算式為 DT_DBTIMESTAMPOFFSET 資料類型,另一個運算式會以隱含的方式轉換為 DT_DBTIMESTAMPOFFSET,而且會執行 DT_DBTIMESTAMPOFFSET 比較。 如需相關資訊,請參閱 Integration Services Data Types in Expressions。
如果一個運算式為 DT_DBTIMESTAMP2 資料類型,另一個運算式會以隱含的方式轉換為 DT_DBTIMESTAMP2,而且會執行 DT_DBTIMESTAMP2 比較。
如果一個運算式為 DT_DBTIME2 資料類型,另一個運算式會以隱含的方式轉換為 DT_DBTIME2,而且會執行 DT_DBTIME2 比較。
如果一個運算式的類型不屬於 DT_DBTIMESTAMPOFFSET、DT_DBTIMESTAMP2 或 DT_DBTIME2,運算式會在進行比較前,轉換為 DT_DBTIMESTAMP 資料類型。
比較運算式時,系統會進行下列假設:
如果每個運算式都是包含毫秒的資料類型,系統會假設毫秒位數最少之資料類型的其餘位數為零。
如果每個運算式都是日期資料類型,但是只有一個運算式具有時區時差,則系統會假設沒有時區時差的日期資料類型為 Coordinated Universal Time (UTC)。
邏輯expression1 和 expression2 都必須評估為布爾值。
GUIDexpression1 和 expression2 都必須評估為DT_GUID數據類型。
二進位expression1 和 expression2 都必須評估為 DT_BYTES 資料類型。
BLOBexpression1 和 expression2 都必須評估為相同的二進位大型物件區塊 (BLOB) 數據類型:DT_TEXT、DT_NTEXT或DT_IMAGE。
如需有關資料類型的詳細資訊,請參閱< Integration Services Data Types>。
表達式範例
如果目前的日期為 2003 年 7 月 4 日,此範例會評估為 TRUE。 如需詳細資訊,請參閱 GETDATE (SSIS 運算式)。
“7/4/2003” == GETDATE()
如果 ListPrice 數據行中的值為 500,則此範例會評估為 TRUE。
ListPrice == 500
此範例會使用 變數 LPrice。 如果 LPrice 的值是 500,它會評估為 TRUE。 變數的數據類型必須是數值,表達式才能成功剖析。
@LPrice == 500