PostgreSQL,替换为枚举

PostgreSQL,替换为枚举,postgresql,Postgresql,我有一个int类型列,所有值都在0到-5之间 是否可以在查询中使用一些“枚举”来代替基于值0、-1、-2、-3、-4和-5的结果文本“零、一、二、三、四、五”中的整数值,而无需向PostgreSQL server添加函数,也无需更改表中的数据 如果您不知道该查询应该是什么样子的 select case the_column when 0 then 'ZERO' when -1 then 'ONE' when -2 then 'TWO'

我有一个int类型列,所有值都在0到-5之间

是否可以在查询中使用一些“枚举”来代替基于值0、-1、-2、-3、-4和-5的结果文本“零、一、二、三、四、五”中的整数值,而无需向PostgreSQL server添加函数,也无需更改表中的数据

如果您不知道该查询应该是什么样子的

select case the_column
         when 0 then 'ZERO'
         when -1 then 'ONE'
         when -2 then 'TWO'
         when -3 then 'THREE'
         when -4 then 'FOUR'
         when -5 then 'FIVE'
       end as value_label
from the_table
SQLFiddle示例:


如果_列中存储了任何其他值,则上述值将返回
null
。如果您不想这样做,您需要在
案例
中添加
else
部分,以返回一些默认值(例如
unknown

谢谢“name”,因为此列位于其他列之间,并且在移除案例前面的SELECT后,我有一个现有的SELECT,我会得到想要的结果。你为什么把它作为价值标签?对我来说,查询工作没有那个功能。@user973238:这只是给那个表达式一个正确的名称。如果您可以使用列标题
?column?
,也可以。是的,我可以,因为我通过网络为数据网格中的列指定自定义名称。