修改后的答案
我原来的帖子有些困扰(见下文,但不要使用),所以我回去检查。如果 Code 是“B”(因此是一个 varchar)并且 Quantity 是一个整数,那么 SQL 不会因为显而易见的原因而让您添加它们,并且不会为您进行隐式转换(至少它没有为我做)。所以我必须将 Quantity 转换为 varchar 才能使用它。
查看以下基于 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