Oracle SQL для добавления символов на основе количества - PullRequest
0 голосов
/ 31 октября 2018

У меня есть требование написать запрос Oracle SQL Select для динамического добавления определенного символа на основе значения в столбце.

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

Прямо сейчас я пробовал с case и decode, но они не динамические.

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

Любая помощь по этому вопросу приветствуется. Спасибо.

1 Ответ

0 голосов
/ 31 октября 2018

Использование RPAD:

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

enter image description here

Демо

Edit:

Если вы хотите вместо этого повторить слов , тогда мы можем использовать RPAD с кратным числом, которое является количеством символов в слове, которое нужно повторить, например,

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

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...