将Image DataType转换为SQL Server中的字符串

时间:2014-12-01 08:04:06

标签: sql sql-server sql-server-2008 sql-server-2012

我在MS-SQL SERVER 2012中有一个具有Image数据类型的列。我想在SQL查询中将其作为字符串...

我试过这个:

SELECT 
'empphoto : '+ ISNULL(CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), empphoto)),'') 
from emppersonal where --some condition

--empphoto Columns is of Image datatype

输出看起来已损坏(只有4个字符)。

OutPut看起来像:

empphoto : ÿØÿà

enter image description here

如何在MS-SQL Server中将Image数据类型转换为字符串?

1 个答案:

答案 0 :(得分:7)

您可以通过for xml path()运行图像值作为BASE64。

尝试:

select 'empphoto : '+(select empphoto as '*' for xml path(''))

结果将如下所示。

empphoto : /9j/4AAQSkZJRgABAQAAAQABAAD/wAARCADw

换句话说,你必须删除前11个字符(empphoto :),强制转换为XML并将值提取为varbinary(max) ..

select cast(stuff(YourTextColumn, 1, 11, '') as xml).value('.', 'varbinary(max)')