重复功能限制postgresql

时间:2017-01-02 10:54:43

标签: postgresql

我的查询如下:

SELECT id, repeat('*', integer) as experience
FROM table1

这导致以下结果:

id | experience

1  | **
2  | ***
3  | *******
4  | *
5  | ********

如你所见,id 3和5确实有7星和8星。我希望我的查询最多可以创建5颗星。有没有办法限制重复功能?

2 个答案:

答案 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