PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Consulta SQL para obter todos os valores que um enum pode ter


Se você quiser uma matriz:
SELECT enum_range(NULL::myenum)

Se você quiser um registro separado para cada item na enumeração:
SELECT unnest(enum_range(NULL::myenum))  

Informações Adicionais


Essa solução funciona conforme o esperado, mesmo que seu enum não esteja no esquema padrão. Por exemplo, substitua myenum com myschema.myenum .

O tipo de dados dos registros retornados na consulta acima será myenum . Dependendo do que você está fazendo, pode ser necessário converter para texto. por exemplo.
SELECT unnest(enum_range(NULL::myenum))::text

Se você deseja especificar o nome da coluna, pode anexar AS my_col_name .

Crédito a Justin Ohms por apontar algumas dicas adicionais, que incorporei à minha resposta.