2016-02-21 56 views

回答

1

相反的明確思考的範圍,你可以使用the lpad() function

select lpad('*', round(your_column/10) '*') from your_table ... 

這輪明星到nearst整數,這似乎是你想要的號碼。如果沒有,你可以使用ceil,floor或trunc。如果舍入/截斷值爲零,則返回null。

例如,

select lpad('*', 3, '*') from dual; 

*** 
+0

謝謝!這是我所期待的。 – smtsmo

1

可以使用case語句此:

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 

當然,你將不得不調整範圍爲每個明星,因爲你沒有解釋的邏輯給我們。此外,我使用*作爲明星,並且您可以添加儘可能多的時間以包含所有星星。

+0

是的,我知道的案例解決方案,但必須有一種更簡單的方法來表示分數與10分開,並四捨五入到最近的符號。 1-x,2-xx,3-xxx等 – smtsmo

+0

@smtsmo案例是一個簡單的解決方案,不會花費太多時間 – sagi

相關問題