2016-04-04 16 views
1

Bir tablonun tüm sütunlarını Base64 dizesine dönüştürmek istiyorum. ÖrneğinTüm sütun Base64 dizesine nasıl dönüştürülür?

masanın altında var:

|Id |EmailID  | 
|123|[email protected]| 
|456|[email protected]| 

Şimdi çıkış aşağıda gibi istiyorum:

|Id |EmailID  |Base64String     | 
|abc|[email protected]|Base64 string of (Id+EmailID)| 
|xyz|[email protected]|Base64 string of (Id+EmailID)| 

Herhangi cevapları büyük takdir edecektir.

Teşekkürler.

+4

** [SQL Server Base64 kodlama] (http://stackoverflow.com/questions/5082345/base64-encoding-in-sql-server-2005-t -SQL) ** – lad2025

cevap

0
;WITH cte AS (
SELECT * 
FROM (VALUES 
(123, '[email protected]'), 
(456, '[email protected]') 
) AS t(Id, EmailID) 
) 

SELECT Id, 
     EmailID, 
     CAST(N'' AS XML).value('xs:base64Binary(xs:hexBinary(sql:column("bin")))', 'NVARCHAR(MAX)') as Base64String 
FROM (
    SELECT Id, EmailID, CAST(CAST(Id as nvarchar(10)) + EmailID AS VARBINARY(MAX)) AS bin 
    FROM cte 
) as t 

Çıkış:

Id   EmailID  Base64String 
----------- -------------- ------------------------------------------------ 
123   [email protected] MQAyADMAdABlAHMAdAAxAEAAdABlAHMAdAAuAGMAbwBtAA== 
456   [email protected] NAA1ADYAdABlAHMAdAAyAEAAdABlAHMAdAAuAGMAbwBtAA== 

(2 row(s) affected) 
İlgili konular