Tôi biết điều này đã được trả lời, nhưng tôi chỉ dành nhiều thời gian hơn tôi quan tâm để thừa nhận việc nghĩ 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 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 do truy vấn con tạo trong truy vấn đầu tiên (mã hóa) 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 của nó ("5465737444617461") để bao gồm làm đối số xs:hexBinary () trong câu lệnh XQuery.
Tôi hy vọng điều này sẽ giúp ai đó!