Mysql
 sql >> Database >  >> RDS >> Mysql

Esiste una soluzione alternativa generica per esprimere un elenco di colonne derivato in Oracle (e MySQL)?

Per una soluzione MySQL, potresti usare un UNION per impostare i nomi di tutte le colonne in un termine di query a riga zero, e successivamente interrogare qualcosa di più complesso:

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

Solo il primo termine di query di UNION definisce i nomi di colonna dell'intera query. I nomi delle colonne (o la loro mancanza) nei termini di query successivi non influiscono sui nomi delle colonne finali.

Devi conoscere il numero di colonne, ma dovrebbe essere abbastanza facile mantenere separati i due termini della query. Per quanto ne so, funziona sia in Oracle che in MySQL (tuttavia, l'ho testato solo in MySQL, non in Oracle).