Für eine MySQL-Lösung könnten Sie eine UNION
verwenden um die Namen aller Spalten in einem nullzeiligen Abfragebegriff festzulegen und anschließend etwas Komplexeres abzufragen:
SELECT null AS a, null AS b, null AS c FROM dual WHERE false
UNION ALL
SELECT <expr>, <expr>, <expr>
FROM <realtable>...
Nur der erste Abfragebegriff einer UNION definiert die Spaltennamen der gesamten Abfrage. Spaltennamen (oder deren Fehlen) in nachfolgenden Abfragebegriffen wirken sich nicht auf die endgültigen Spaltennamen aus.
Sie müssen die Nummer kennen von Spalten, aber es sollte ziemlich einfach sein, die beiden Abfragebegriffe getrennt zu halten. Soweit ich weiß, funktioniert es sowohl in Oracle als auch in MySQL (jedoch habe ich es nur in MySQL getestet, nicht in Oracle).