我的查询如下:
SELECT id, repeat('*', integer) as experience FROM table1
这导致以下结果:
id | experience 1 | ** 2 | *** 3 | ******* 4 | * 5 | ********
如你所见,id 3和5确实有7星和8星。我希望我的查询最多可以创建5颗星。有没有办法限制重复功能?
答案 0 :(得分:4)
通过应用least()函数使用两个值中较小的一个:
SELECT id, repeat('*', least(5, some_colum)) as experience
FROM table1
(这假设some_column
包含要使用的值)
答案 1 :(得分:0)
SELECT id
,repeat('*', (case when col_name >=5 then 5 else col_name end)) as experience
FROM table1