modifié Réponse
Quelque chose me dérangeait au sujet de mon message original (voir ci-dessous, mais ne pas utiliser) donc je suis retourné à vérifier. Si le code est 'B' (donc un varchar) et que la quantité est un entier, alors SQL ne vous laissera pas les ajouter pour des raisons évidentes et ne fera pas une conversion implicite pour vous (au moins il ne le fait pas pour moi). J'ai donc dû convertir Quantity en un varchar pour pouvoir l'utiliser.
Regardez le code de travail suivant construit sur 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
Réponse originale (ne pas utiliser)
essayez le
suivant
SELECT CASE WHEN Code = 'B' THEN Code+Base ELSE Code+Quantity END AS OutputValue
FROM MyTable
WHERE ID = @Id
and Quantity = @Quantity
Que ks beaucoup .. ça a marché .. – msbyuva