Если вы хотите массив:
SELECT enum_range(NULL::myenum)
Если вы хотите отдельную запись для каждого элемента в перечислении:
SELECT unnest(enum_range(NULL::myenum))
Дополнительная информация
Это решение работает должным образом, даже если ваше перечисление не входит в схему по умолчанию. Например, замените myenum
на myschema.myenum
.
Тип данных возвращаемых записей в приведенном выше запросе будет myenum
. В зависимости от того, что вы делаете, вам может потребоваться преобразовать текст. например,
SELECT unnest(enum_range(NULL::myenum))::text
Если вы хотите указать имя столбца, вы можете добавить AS my_col_name
.
Благодарим Джастина Омса за то, что он указал на некоторые дополнительные советы, которые я включил в свой ответ.