Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Utiliser le résultat SELECT comme nom de COLONNE dans un autre SELECT

Vous n'avez pas besoin de SQL dynamique pour ce faire (et le SQL dynamique doit être évité dans la mesure du possible). Au lieu de cela, vous pouvez utiliser une instruction CASE. Vous pouvez le faire avec une seule instruction, mais je l'ai séparée à des fins d'affichage :

DECLARE @brand VARCHAR(100) = (SELECT brand FROM articles a WHERE a.id='12345678')

SELECT CASE @brand
           WHEN 'BRAND_A' THEN BRAND_A_PRICE
           WHEN 'BRAND_B' THEN BRAND_B_PRICE
           WHEN 'BRAND_C' THEN BRAND_C_PRICE
           ELSE 0 END AS PRICE
FROM prices
WHERE id='12345678'