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

Requête SQL pour obtenir toutes les valeurs qu'une énumération peut avoir

Si vous voulez un tableau :

SELECT enum_range(NULL::myenum)

Si vous souhaitez un enregistrement séparé pour chaque élément de l'énumération :

SELECT unnest(enum_range(NULL::myenum))  

Informations supplémentaires

Cette solution fonctionne comme prévu même si votre énumération n'est pas dans le schéma par défaut. Par exemple, remplacez myenum avec myschema.myenum .

Le type de données des enregistrements renvoyés dans la requête ci-dessus sera myenum . Selon ce que vous faites, vous devrez peut-être convertir en texte. ex.

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

Si vous souhaitez spécifier le nom de la colonne, vous pouvez ajouter AS my_col_name .

Merci à Justin Ohms d'avoir souligné quelques conseils supplémentaires, que j'ai incorporés dans ma réponse.