Ваша выписка по делу оценивается до страшного A = NULL
:
CASE A WHEN NULL THEN B ELSE A END
Так же, как:
CASE WHEN A = NULL then B ELSE A END
Один из способов исправить это - использовать A IS NULL
, например:
CASE WHEN A IS NULL THEN B ELSE A END
Или даже проще:
COALESCE(A,B)
И when
, и coalesce
примут тип данных первого аргумента. Чтобы привести результат к varbinary
, вы можете сначала поместить столбец varbinary
или явное приведение:
COALESCE(CAST(A AS VARBINARY(MAX)),B)