Convert nvarchar(max) to varbinary(max)

sql, sql-server

Solution

The failure is occurring because you convert description to `varbinary`, but then try to cast any null values back to a `varchar`. You just need to move `ISNULL` inside the `CONVERT` or change the conversion value when null to a binary value.

ISNULL in CONVERT

SELECT 
    CONVERT(varbinary(MAX), report), 
    CONVERT(varbinary(max), ISNULL([description], '')) as [description]
FROM myTbl

Proper ISNULL Value

SELECT 
    CONVERT(varbinary(MAX), report), 
    ISNULL(CONVERT(varbinary(max), [description]), 0x) as [description]
FROM myTbl

Both versions will produce the same output `0x` if description is null.

Problem

Have table with values ``` report nvarchar(max) not null description nvarchar(max) ``` In stored procedure I want select values from table and then convert it to varbinary max. I seletct : ``` select CONVERT(varbinary(max), [report]) as [report], ISNULL(CONVERT(varbinary(max), [description]), '') as [description] from myTbl ``` but I get an error: Implicit conversion from data type varchar to varbinary(max) is not allowed. Use the CONVERT function to run this query. Please help me to solve this problem

Original source