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

Query SQL per ottenere tutti i valori che un'enumerazione può avere

Se vuoi un array:

SELECT enum_range(NULL::myenum)

Se vuoi un record separato per ogni elemento nell'enumerazione:

SELECT unnest(enum_range(NULL::myenum))  

Informazioni aggiuntive

Questa soluzione funziona come previsto anche se l'enumerazione non è nello schema predefinito. Ad esempio, sostituisci myenum con myschema.myenum .

Il tipo di dati dei record restituiti nella query precedente sarà myenum . A seconda di ciò che stai facendo, potrebbe essere necessario trasmettere al testo. es.

SELECT unnest(enum_range(NULL::myenum))::text

Se vuoi specificare il nome della colonna, puoi aggiungere AS my_col_name .

Ringraziamo Justin Ohms per aver indicato alcuni suggerimenti aggiuntivi, che ho incorporato nella mia risposta.