sql >> Base de Datos >  >> RDS >> Sqlserver

Use el resultado SELECCIONAR como nombre de COLUMNA en otro SELECCIONAR

No necesita SQL dinámico para hacer esto (y SQL dinámico debe evitarse si es posible). En su lugar, puede utilizar una instrucción CASE. Puede hacer esto con una sola declaración, pero la he dividido para fines de visualización:

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'