我Image在MS-SQL SERVER 2012中有一个具有数据类型的列。我想在SQL查询中将其作为字符串获取。
Image
我已经试过了:
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中将数据类型转换为字符串?
您可以通过运行图像值将其提取为BASE64 for xml path()。
for xml path()
尝试:
select 'empphoto : '+(select empphoto as '*' for xml path(''))
结果将如下所示。
empphoto : /9j/4AAQSkZJRgABAQAAAQABAAD/wAARCADw
要使用其他方法,您必须删除前11个字符(empphoto :),强制转换为XML,然后将值提取为varbinary(max).。
empphoto :
varbinary(max)
select cast(stuff(YourTextColumn, 1, 11, '') as xml).value('.', 'varbinary(max)')