Oracle SQL根据计数附加字符

时间:2018-10-31 07:04:23

标签: sql oracle oracle11g

我需要编写一个Oracle SQL Select查询,以根据列中的值动态附加某个字符。

For Eg -
COLUMN1
1
2
3
Then result should be,
COLUMN1 DERIVED_COLUMN
1          @
2          @@
3          @@@

现在,我尝试使用大小写和解码,但是它们不是动态的。

SELECT COLUMN1, DECODE(COLUMN1, 1, '@', 2, @@, .....) FROM MY_TABLE

对此有任何帮助,我们深表感谢。谢谢。

1 个答案:

答案 0 :(得分:2)

使用RPAD

SELECT
    COLUMN1,
    RPAD('@', COLUMN1, '@') AS DERIVED_COLUMN
FROM MY_TABLE;

enter image description here

Demo

编辑:

如果您想重复 words ,那么我们可以使用RPAD乘以倍数,该倍数是单词中要重复的字符数,例如

SELECT
    COLUMN1,
    RPAD('test;', COLUMN1*5, 'test;') AS DERIVED_COLUMN
FROM MY_TABLE;

Demo