Til en MySQL-løsning kan du bruge en UNION
for at angive navnene på alle kolonnerne i et nulrækkeforespørgselsudtryk og derefter forespørge på noget mere komplekst:
SELECT null AS a, null AS b, null AS c FROM dual WHERE false
UNION ALL
SELECT <expr>, <expr>, <expr>
FROM <realtable>...
Kun det første forespørgselsudtryk i en UNION definerer kolonnenavnene for hele forespørgslen. Kolonnenavne (eller mangel på samme) i efterfølgende søgetermer påvirker ikke de endelige kolonnenavne.
Du skal kende nummeret af kolonner, men det burde være ret nemt at holde de to forespørgselsudtryk adskilt. Så vidt jeg ved, virker det i både Oracle og MySQL (jeg har dog kun testet det i MySQL, ikke i Oracle).