PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Perché SELECT senza colonne è valido

Direttamente dal manuale:

L'elenco delle espressioni di output dopo SELECT può essere vuoto, producendo una tabella dei risultati a colonna zero. Questa non è una sintassi valida secondo lo standard SQL. PostgreSQL gli consente di essere coerente con l'autorizzazione di tabelle a colonna zero. Tuttavia, un elenco vuoto non è consentito quando DISTINCT viene utilizzato.

La possibilità di tabelle "a colonna zero" è un effetto collaterale dell'ereditarietà delle tabelle, se non sbaglio. Ci sono state discussioni su questo nelle mailing list di Postgres (ma al momento non riesco a trovarle)