sql >> Database >  >> RDS >> Mysql

Is het mogelijk om dynamisch een kolomnaam in MYSQL te selecteren waarbij de kolomnaam 1 van N bekende waarden is?

Ik ben het volledig eens met Opmerking van @Strawberry dat "dit klinkt als een ramp in wording "—het is een zeer slechte ontwerpstrategie en ik raad ten zeerste aan om een ​​alternatieve oplossing te zoeken. Het is echter een interessante uitdaging... dit is mijn oplossing:

SELECT COALESCE(title,label,name) col FROM `table` NATURAL LEFT JOIN (
  SELECT NULL title, NULL label, NULL name
) t WHERE COALESCE(title,label,name) IS NOT NULL

Bekijk het op sqlfiddle .

Merk op dat als de recordgegevens NULL . zijn , er wordt geen record geretourneerd.



  1. In Sql Server hoe te draaien voor meerdere kolommen

  2. Hoe maak je een procedure in Oracle SQL Developer?

  3. Rij-uitbreiding via * wordt hier niet ondersteund

  4. PostgreSQL geeft gegevens van recursieve CTE door aan functie