我在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个字符)。

输出看起来像:
empphoto : ÿØÿà

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

最佳答案

您可以通过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)')

10-06 15:32