sql >> Database >  >> RDS >> Sqlserver

Gebruik SELECT resultaat als COLUMN naam in andere SELECT

U hebt hiervoor geen dynamische SQL nodig (en dynamische SQL moet indien mogelijk worden vermeden). In plaats daarvan kunt u een CASE-statement gebruiken. U kunt dit doen met een enkele verklaring, maar ik heb deze opgesplitst voor weergavedoeleinden:

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. SET GLOBAL max_allowed_packet werkt niet

  2. Werkmap gebruiken voor bronbeheerdatabase

  3. sp_MSforeachdb:neem alleen resultaten op van databases met resultaten

  4. Zoeken in een Oracle-database naar tabellen met specifieke kolomnamen?