我正在尝试将tinyint列的值作为预定义文本返回。
在我的dB中,我有一个名为thing_status的列,它是一个tinyint。值为0 ='空',1 ='完全',2 ='已删除'。
当我进行查询时,我想添加一个包含thing_status文本表示的额外条目。
例如:
SELECT
thing_id,
thing_status,
{function to convert status to string} AS thing_status_text
我已经有了两个想法,但似乎都不合适:
答案 0 :(得分:2)
您可以使用案例陈述:
select thing_id, thing_status,
(case when thing_status = 0 then 'Empty'
when thing_status = 1 then 'Full'
when thing_status = 2 then 'Removed'
end) as thing_status_text
您也可以将其放入视图中,因此任何想要使用它的查询都可以使用它。
但是,您可能也对enum
感兴趣,{{1}}是一种在这种情况下有用的数据类型。
答案 1 :(得分:0)
最简单的方法是使用ELT()
运算符:
SELECT
thing_id,
thing_status,
ELT(thing_status, 'Empty', 'Full', 'Removed') AS thing_status_text;