Non è necessario l'SQL dinamico per farlo (e l'SQL dinamico dovrebbe essere evitato se possibile). Invece puoi usare un'istruzione CASE. Puoi farlo con una singola istruzione, ma l'ho divisa per scopi di visualizzazione:
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'