資料庫處理的資料,多半是以字元(characters)、十進制數字為主,因此它便提供了較多這方面的函數供開發者使用。但若想設計較底層的功能時 (如:整合通訊軟體資料),便有機會遇到二進制數字,此時可利用 SQL Server 2008 CONVERT 函數的二進制 Style 來處理轉換問題。
1) Binary 與 ASCII 字元的轉換:Style 設為 0,所得 ASCII 字元以 16 進制表示。
declare @expression_string varchar(100), @binary_codes varbinary(200) set @expression_string = '1011' set @binary_codes = convert(varbinary(200), @expression_string, 0) -- ASCII (hex) select @binary_codes as Binary_Codes select convert(varchar(100), @binary_codes, 0) as Expression_String
所得結果
所得結果
2) Binary 與一般字元的轉換:當 Style = 1 時,Expression String 的前兩個字元需為 0x;Style = 2 便無此限制。
Style = 1
Style = 1
declare @expression_string varchar(100), @binary_codes varbinary(200) set @expression_string = '0x1011' set @binary_codes = convert(varbinary(200), @expression_string, 1) select @binary_codes as Binary_Codes select convert(varchar(100), @binary_codes, 1) as Expression_String
Style = 2
declare @expression_string varchar(100), @binary_codes varbinary(200) set @expression_string = '1011' set @binary_codes = convert(varbinary(200), @expression_string, 2) select @binary_codes as Binary_Codes select convert(varchar(100), @binary_codes, 2) as Expression_String
所得結果