我有int类型列,所有值都从0到-5。
是否有可能在查询中使用“枚举”而不是整数值,而是根据值0,-1,-2,-3得到结果文本“ZERO,ONE,TWO,THREE,FOUR,FIVE” ,-4和-5,不向PostgreSQL服务器添加函数,也不更改表中的数据。
如果该查询应该如何。
答案 0 :(得分:1)
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示例:http://sqlfiddle.com/#!15/48b69/1
如果null
中存储了任何其他值,则上述内容将返回the_column
。如果您不希望这样,则需要在else
添加case
部分以返回一些默认值(例如unknown
)