小编典典

在SQL Server中将图像数据类型转换为字符串

sql

Image在MS-SQL SERVER 2012中有一个具有数据类型的列。我想在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 : ÿØÿà

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


阅读 312

收藏
2021-05-30

共1个答案

小编典典

您可以通过运行图像值将其提取为BASE64 for xml path()

尝试:

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)')
2021-05-30