Mysql
 sql >> Base de données >  >> RDS >> Mysql

Existe-t-il une solution de contournement générique pour exprimer une liste de colonnes dérivées dans Oracle (et MySQL) ?

Pour une solution MySQL, vous pouvez utiliser un UNION pour définir les noms de toutes les colonnes dans un terme de requête de zéro ligne, puis interroger ensuite quelque chose de plus complexe :

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

Seul le premier terme de requête d'un UNION définit les noms de colonne de toute la requête. Les noms de colonne (ou leur absence) dans les termes de requête suivants n'affectent pas les noms de colonne ultimes.

Vous devez connaître le numéro de colonnes, mais il devrait être assez facile de séparer les deux termes de la requête. Autant que je sache, cela fonctionne à la fois dans Oracle et MySQL (cependant, je ne l'ai testé que dans MySQL, pas dans Oracle).