sql >> Databasteknik >  >> RDS >> Mysql

Finns det en generisk lösning för att uttrycka en härledd kolumnlista i Oracle (och MySQL)?

För en MySQL-lösning kan du använda en UNION för att ställa in namnen på alla kolumner i en nollradsfrågeterm och sedan fråga något mer komplext:

SELECT null AS a, null AS b, null AS c FROM dual WHERE false
UNION ALL
SELECT <expr>, <expr>, <expr>
FROM <realtable>...

Endast den första frågetermen i en UNION definierar kolumnnamnen för hela frågan. Kolumnnamn (eller brist på sådana) i efterföljande frågetermer påverkar inte de slutliga kolumnnamnen.

Du måste känna till numret kolumner, men det borde vara ganska enkelt att hålla de två frågetermen åtskilda. Så vitt jag vet fungerar det i både Oracle och MySQL (dock har jag bara testat det i MySQL, inte i Oracle).



  1. com.zaxxer.hikari.pool.PoolInitializationException:Undantag under poolinitiering

  2. Skapa MySQL-frågeövervakningsbash-skript

  3. MySQL automatiskt lagra datumtid för varje rad

  4. Frågeprofilering 101 — Ja, det kan verkligen förbättra din SQL-serverprestanda