SQL查询基于列2的值多次选择列1的值

时间:2018-10-17 02:28:44

标签: sql oracle

如何在Oracle中针对以下情况编写查询?

输入

Column1 Column2
R        1
S        2
F        3

输出

RSSFFF

“ R” 1次,“ S” 2次和“ F” 3次。

2 个答案:

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