具有值的表
report nvarchar(max) not null
description nvarchar(max)
在存储过程中,我想从表中选择值,然后将其转换为var二进制最大值。我选择:
select
CONVERT(varbinary(max), [report]) as [report],
ISNULL(CONVERT(varbinary(max), [description]), '') as [description]
from myTbl
但是我得到一个错误:
不允许从数据类型varchar隐式转换为var二进制(max)。使用CONVERT函数运行此查询。
请帮我解决这个问题
发生故障的原因是您将描述转换为varbinary
,但随后尝试将任何空值转换回varchar
。您只需将ISNULL
移动到CONVERT
中,或者将null时的转换值更改为二进制值。
SELECT
CONVERT(varbinary(MAX), report),
CONVERT(varbinary(max), ISNULL([description], '')) as [description]
FROM myTbl
SELECT
CONVERT(varbinary(MAX), report),
ISNULL(CONVERT(varbinary(max), [description]), 0x) as [description]
FROM myTbl
如果描述为空,两个版本将产生相同的输出0x
。