Saya tahu ini telah dijawab, tetapi saya hanya menghabiskan lebih banyak waktu daripada yang saya akui datang dengan pernyataan SQL baris tunggal untuk mencapai ini, jadi saya akan membagikannya di sini jika ada orang lain yang perlu melakukan hal yang sama:
-- 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
;
Saya harus menggunakan tabel yang dihasilkan subkueri di kueri (pengkodean) pertama karena saya tidak dapat menemukan cara untuk mengonversi nilai asli ("TestData") menjadi representasi string hex ("5465737444617461") untuk disertakan sebagai argumen untuk xs: hexBinary () dalam pernyataan XQuery.
Saya harap ini membantu seseorang!