2016-05-21 60 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)');' –