当数字结果为 SQL 时向大小写添加文本
Adding text to case when numeric result in SQL
我有一个以小数计算的年龄变量,我想将它向下舍入并在结果中添加文本 '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
仍被视为数字。我认为解决方案是将单元格类型转换为字符串,但想不出将其放在哪里/如何放。如有任何建议,我们将不胜感激!
Netezza 中的字符串连接使用 ||
:
(case when age < 1 then '< 1 year'
else floor(age) || ' years'
end) as age_year
我删除了第二个条件,因为 else
可能会做你想要的(除非 age
可以为负数)。
我有一个以小数计算的年龄变量,我想将它向下舍入并在结果中添加文本 '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
仍被视为数字。我认为解决方案是将单元格类型转换为字符串,但想不出将其放在哪里/如何放。如有任何建议,我们将不胜感激!
Netezza 中的字符串连接使用 ||
:
(case when age < 1 then '< 1 year'
else floor(age) || ' years'
end) as age_year
我删除了第二个条件,因为 else
可能会做你想要的(除非 age
可以为负数)。