2016-05-21 61 views
0

是否有任何簡單的函數來獲取此輸出。SQL服務器選擇爲base64列

SELECT Title FROM Table WHERE Id = 1 
---- My title 

慾望功能或等..

SELECT MYBASE64ENCODE(Title) FROM Table WHERE Id = 1 
---- TXkgdGl0bGU= 

我需要ecnode字符串爲base64功能。

如果回答是this那麼如何能把我的列作爲我的查詢的輸入。

+0

在SQL Server中的[Base64編碼可能的複製2005 T-SQL](http://stackoverflow.com/questions/5082345/base64-encoding-in-sql-server-2005-t-sql) –

+0

@JamesZ我點認爲所以這是一個複雜的查詢我需要的功能不是選擇裏面選擇。 – sweb

+0

你讀過了嗎?還有函數示例 –

回答

3

也許創建一個用戶定義的函數是這樣的.....

CREATE FUNCTION dbo.get_base64Coded (@Input nvarchar(4000)) 
RETURNS nvarchar(4000) 
AS 
BEGIN 
    Declare @Output nvarchar(4000); 

SELECT 
    @Output = CAST(N'' AS XML).value(
      'xs:base64Binary(xs:hexBinary(sql:column("value")))' 
     , 'VARCHAR(MAX)') 
FROM (
     SELECT CAST(@Input AS VARBINARY(MAX)) AS value 
    ) AS A; 
    RETURN @Output  
END 

您的查詢會看起來像......

SELECT dbo.get_base64Coded(Title) FROM Table WHERE Id = 1 
+0

替代函數體,DECLARE @InputBinary varbinary(MAX)= CAST(@Input AS varbinary(MAX)); RETURN CAST(N''AS XML).value( 'xs:base64Binary(xs:hexBinary(sql:variable(「@ InputBinary」)))' ,'VARCHAR(4000)');' –