如何在Oracle中针对以下情况编写查询?
输入
Column1 Column2
R 1
S 2
F 3
输出
RSSFFF
即“ R” 1次,“ S” 2次和“ F” 3次。
答案 0 :(得分:3)
您可以使用rpad
重复字母,并使用listagg
将它们连接成一行,就像这样。
select
listagg(rpad(column1,column2,column1)) within group (order by column2)
from table_name;
但是如果您有另一列来对行进行排序,这将起作用,在这种情况下,我只使用column2
。
答案 1 :(得分:2)
一种方法使用lpad()
:
select lpad(column1, column2, column1)
from t;
如果您需要单个字符串,请使用listagg()
:
select listagg(lpad(column1, column2, column1)) within group (order by null)
from t;