我有一个分数表:35,47等。我如何在符号中返回分数(以10分)。 35颗3星,47颗5星。
答案 0 :(得分:1)
您可以使用案例陈述:
SELECT score,case when score between 0 and 15 then '*'
when score between 16 and 30 then '**'
when score between 31 and 40 then '***'
end as 'STARS'
FROM ScoreTable
当然,您必须调整每颗星的范围,因为您没有向我们解释逻辑。另外,我使用*作为星号,你可以添加尽可能多的WHEN,因为你想要包括所有星星。
答案 1 :(得分:1)
您可以使用the lpad()
function:
select lpad('*', round(your_column/10) '*') from your_table ...
这样可以将星数变为近似整数,这似乎就是你想要的。如果没有,你可以使用ceil,floor或trunc。如果舍入/截断值为零,则返回null。
例如,
select lpad('*', 3, '*') from dual;
给出
***