Wie*_*zny 125 postgresql enums
Postgresql前段时间获得了enum支持.
CREATE TYPE myenum AS ENUM (
'value1',
'value2',
);
Run Code Online (Sandbox Code Playgroud)
如何通过查询获取枚举中指定的所有值?
Chr*_*s L 230
如果你想要一个数组:
SELECT enum_range(NULL::myenum)
Run Code Online (Sandbox Code Playgroud)
如果你想为枚举中的每个项目单独记录:
SELECT unnest(enum_range(NULL::myenum))
Run Code Online (Sandbox Code Playgroud)
即使您的枚举不在默认架构中,此解决方案仍可按预期工作.例如,替换myenum
为myschema.myenum
.
上述查询中返回记录的数据类型为myenum
.根据您的操作,您可能需要转换为文本.例如
SELECT unnest(enum_range(NULL::myenum))::text
Run Code Online (Sandbox Code Playgroud)
如果要指定列名,可以追加AS my_col_name
.
感谢Justin Ohms指出了一些额外的提示,我将其纳入了我的答案.
Kev*_*Kev 28
尝试:
SELECT e.enumlabel
FROM pg_enum e
JOIN pg_type t ON e.enumtypid = t.oid
WHERE t.typname = 'myenum'
Run Code Online (Sandbox Code Playgroud)
SELECT unnest(enum_range(NULL::your_enum))::text AS your_column
Run Code Online (Sandbox Code Playgroud)
这将返回包含“ your_enum”枚举内容的单列结果集,该列结果集的文本类型为“ your_column”。
归档时间: |
|
查看次数: |
61494 次 |
最近记录: |