Проблема может возникнуть в Val. Поскольку один столбец имеет один тип данных, вы можете выбрать это:
SELECT IssueId,
customfield,
CASE
WHEN customfield IN ('OrderNumber', 'CustomerNumber') THEN valHash
ELSE CAST (val AS VARBINARY (500))
END AS Value,
valHash
FROM MyTable
Если вы хотите, чтобы все было в виде строки, вы можете использовать это:
SELECT IssueId,
customfield,
CASE
WHEN customfield IN ('OrderNumber', 'CustomerNumber') THEN CONVERT (NVARCHAR (50), Valhash, 2)
ELSE val )
END AS Value,
valHash
FROM MyTable
Если вы настаиваете на различии между VARCHAR и VARBINARY в разных случаях, вам нужен дополнительный столбец.