Tôi biết điều này đã được trả lời, nhưng tôi chỉ mất nhiều thời gian hơn tôi quan tâm đến việc đưa ra các câu lệnh SQL một dòng để thực hiện điều này, vì vậy tôi sẽ chia sẻ chúng ở đây trong trường hợp bất kỳ ai khác cần phải làm như vậy:
-- Encode the string "TestData" in Base64 to get "VGVzdERhdGE="
SELECT
CAST(N'' AS XML).value(
'xs:base64Binary(xs:hexBinary(sql:column("bin")))'
, 'VARCHAR(MAX)'
) Base64Encoding
FROM (
SELECT CAST('TestData' AS VARBINARY(MAX)) AS bin
) AS bin_sql_server_temp;
-- Decode the Base64-encoded string "VGVzdERhdGE=" to get back "TestData"
SELECT
CAST(
CAST(N'' AS XML).value(
'xs:base64Binary("VGVzdERhdGE=")'
, 'VARBINARY(MAX)'
)
AS VARCHAR(MAX)
) ASCIIEncoding
;
Tôi đã phải sử dụng bảng được tạo bởi truy vấn con trong truy vấn (mã hóa) đầu tiên vì tôi không thể tìm thấy bất kỳ cách nào để chuyển đổi giá trị ban đầu ("TestData") thành biểu diễn chuỗi hex ("5465737444617461") để đưa vào làm đối số xs: hexBinary () trong câu lệnh XQuery.
Tôi hi vọng điêu nay se giup được ai đo!