在sql中生成数字结果时向case添加文本

hmtdttj4  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(359)

我有一个用小数计算的年龄变量,我想把它四舍五入,然后在结果中加上‘years’。期望输出为:

age         age_year
--------------------
0.0012      < 1 year
1.567        1 year 
6.230        6 year 
0.983       < 1 year

目前,我有:

select 
case when (age < 1) then '< 1 year'
     when (age > 1) then floor(age) + 'years' 
     end as age_year

我得到的错误是:

ERROR [HY000] ERROR:  Bad numeric input format 'years'

我可以看出细胞类型有冲突 age_year 仍被视为数字。我认为解决方案是将单元格类型转换为字符串,但不知道该放在哪里/如何放。任何建议都将不胜感激!

imzjd6km

imzjd6km1#

netezza使用的字符串连接 || :

(case when age < 1 then '< 1 year'
      else floor(age) || ' years' 
 end) as age_year

我删除了第二个条件,因为 else 可能做你想做的事(除非 age 可以是负数)。

相关问题