sql >> Base de Datos >  >> RDS >> PostgreSQL

Consulta SQL para obtener todos los valores que puede tener una enumeración

Si quieres una matriz:

SELECT enum_range(NULL::myenum)

Si desea un registro separado para cada elemento de la enumeración:

SELECT unnest(enum_range(NULL::myenum))  

Información adicional

Esta solución funciona como se esperaba incluso si su enumeración no está en el esquema predeterminado. Por ejemplo, reemplace myenum con myschema.myenum .

El tipo de datos de los registros devueltos en la consulta anterior será myenum . Dependiendo de lo que esté haciendo, es posible que deba enviar a texto. por ejemplo

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

Si desea especificar el nombre de la columna, puede agregar AS my_col_name .

Gracias a Justin Ohms por señalar algunos consejos adicionales, que incorporé en mi respuesta.