Segment
1
2
3
4
NUll
5
如果细分值为空,我想归因于“其他”
预期产量
Segment
1
2
3
4
Other
5
我尝试过
select
case when segment is null then 'Other' else segment end as segment
from table;
说“数字”类型的输入语法无效:其他
答案 0 :(得分:2)
case
表达式返回单个类型。问题是segment
是数字,而'Other'
是字符串。表达式必须做出选择,并且它选择数字类型(遵循标准SQL规则)。
这很容易解决。只需投射segment
:
select (case when segment is null then 'Other' else segment::text end) as segment
from table;
使用coalesce()
编写此查询会更自然:
select coalesce(segment::text, 'Other') as segment
from table;
答案 1 :(得分:0)
select
case when CAST(segment AS CHAR) IS NULL then 'Other' else CAST(segment AS CHAR) end as segment
from table