sql >> Database teknologi >  >> RDS >> Sqlserver

Brug SELECT resultat som KOLONNEnavn i andre SELECT

Du behøver ikke dynamisk SQL for at gøre dette (og dynamisk SQL bør undgås, hvis det overhovedet er muligt). I stedet kan du bruge en CASE-sætning. Du kan gøre dette med en enkelt erklæring, men jeg har delt den ud til visningsformå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. Sådan sorterer du i SQL, ignorerer artikler ('den, en', osv.)

  2. SQL, Vælg mellem dato/klokkeslæt

  3. Forbindelsen mislykkedes:Adgang nægtet for brugeren 'root'@'localhost' (ved hjælp af adgangskode:JA) fra php-funktionen

  4. få tælling fra den samme kolonne i en mysql-tabel?