我有varbinary值,我想提取第0字節的前3位和 值是0x4D79205465737420537472696E67。SQL Server:如何從二進制或varbinary值字節中提取特定位
謝謝你,
我有varbinary值,我想提取第0字節的前3位和 值是0x4D79205465737420537472696E67。SQL Server:如何從二進制或varbinary值字節中提取特定位
謝謝你,
這從varbinary
值的第一個字節中提取的3位:
select CONVERT(tinyint,0x7) & SUBSTRING(0x4D79205465737420537472696E67,1,1)
邏輯在於在AND(&
)的左手側,我們有一個字節與3位設置。在右側,我們從varbinary
中提取單個字節(SUBSTRING
是基於1的而不是基於0的,所以這是第一個字節)。
爲了從第三個字節的最後5位,我們必須:
select CONVERT(tinyint,0xF8) & SUBSTRING(0x4D79205465737420537472696E67,3,1)
是否有可能在varbinary上做子串?如果是這樣,每個字節算作一個字符? –
@GuillermoGutiérrez - 我鏈接到它的文檔。我不會說每個字節都算作字符。相反,它是根據字節而不是字符顯式定義的:「* start *和* length *的值必須以文本,圖像,二進制文件的ntext,char或varchar數據類型和字節數的字符數指定varbinary數據類型「。 –
非常感謝...... –
那你試試? – Amber