Модифицированный ответ
Что-то беспокоило меня в моем исходном сообщении (см. Ниже, но не используется), поэтому я вернулся, чтобы проверить.Если код - «B» (следовательно, varchar), а количество - целое число, то SQL не позволит вам добавить их по понятным причинам и не будет выполнять неявное преобразование для вас (по крайней мере, для меня это не было сделано).Поэтому мне пришлось конвертировать количество в варчар, чтобы иметь возможность использовать его.
Посмотрите на следующий рабочий код, построенный на SQL Server 2008
DECLARE @MyTable TABLE
(
ID int identity (1, 1),
Num int,
Quantity int,
Base varchar (1),
Code varchar (1)
)
INSERT INTO @MyTable VALUES
(1, 1, 'a', 'A')
, (2, 2, 'b', 'B')
, (3, 3, 'c', 'C')
, (4, 4, 'd', 'D')
, (5, 5, 'e', 'E')
SELECT * FROM @MyTable
SELECT
CASE WHEN Code = 'B' THEN Code+Base
ELSE Code+CONVERT (VarChar, Quantity)
END AS OutputValue
FROM @MyTable
Оригинальный ответ (не используйте)
попробуйте следующее
SELECT CASE WHEN Code = 'B' THEN Code+Base ELSE Code+Quantity END AS OutputValue
FROM MyTable
WHERE ID = @Id
and Quantity = @Quantity