Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gibt es eine generische Problemumgehung, um eine abgeleitete Spaltenliste in Oracle (und MySQL) auszudrücken?

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).