sql >> Databasteknik >  >> RDS >> Sqlserver

Använd SELECT-resultat som COLUMN-namn i andra SELECT

Du behöver inte dynamisk SQL för att göra detta (och dynamisk SQL bör undvikas om det är möjligt). Istället kan du använda en CASE-sats. Du kan göra detta med ett enda uttalande men jag har delat upp det för visningsändamål:

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'


  1. UTF-8-problem med tecken från MySQL-databas (t.ex. é som é)

  2. Kontrollera kolumn/nyckel finns?

  3. Postgresql gem installation pg 0.18.4 passerar, paketinstallation misslyckas

  4. MySQL QUERY LIKE returnerar ingenting