Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Use o resultado SELECT como nome COLUMN em outro SELECT


Você não precisa de SQL dinâmico para fazer isso (e SQL dinâmico deve ser evitado se possível). Em vez disso, você pode usar uma instrução CASE. Você pode fazer isso com uma única instrução, mas eu a dividi para fins de exibição:
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'