PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Warum ist SELECT ohne Spalten gültig

Direkt aus dem Handbuch:

Die Liste der Ausgabeausdrücke nach SELECT kann leer sein, was eine nullspaltige Ergebnistabelle erzeugt. Dies ist keine gültige Syntax gemäß dem SQL-Standard. PostgreSQL ermöglicht die Konsistenz mit dem Zulassen von Nullspaltentabellen. Eine leere Liste ist jedoch bei DISTINCT nicht zulässig verwendet wird.

Die Möglichkeit von "Nullspalten"-Tabellen ist ein Nebeneffekt der Tabellenvererbung, wenn ich mich nicht irre. Es gab Diskussionen darüber auf den Postgres-Mailinglisten (aber ich kann sie gerade nicht finden)