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

基于第2列值多次选择第1列值的SQL查询,sql,oracle,Sql,Oracle,如何在Oracle中为以下场景编写查询 输入 Column1 Column2 R 1 S 2 F 3 输出 Column1 Column2 R 1 S 2 F 3 RSSFFF 即“R”1次、“S”2次和“F”3次。一种方法使用lpad() 如果需要单个字符串,请使用listagg(): 一种方法使用lpad(): 如果需要单个字符串,请使用listagg(): 您可以使用rpad重复字母,并使用listag

如何在Oracle中为以下场景编写查询

输入

Column1 Column2
R        1
S        2
F        3
输出

Column1 Column2
R        1
S        2
F        3
RSSFFF

即“R”1次、“S”2次和“F”3次。

一种方法使用
lpad()

如果需要单个字符串,请使用
listagg()

一种方法使用
lpad()

如果需要单个字符串,请使用
listagg()


您可以使用
rpad
重复字母,并使用
listag
将它们连接在一行中,如下所示

select
  listagg(rpad(column1,column2,column1)) within group (order by column2)
from table_name;

但是,如果您有另一列来对行进行排序,这将起作用,在本例中,我只使用
列2

您可以使用
rpad
重复字母,并使用
listag
将它们连接在一行中,如下所示

select
  listagg(rpad(column1,column2,column1)) within group (order by column2)
from table_name;

但是,如果您有另一列来对行进行排序,这将起作用,在这种情况下,我只使用
列2

到目前为止您尝试了什么查询?我的实际需求非常复杂,这是其中的一部分。我不知道该怎么做。如果你能提出任何方法或提供任何提示,我可以编写查询。到目前为止你尝试过什么查询?我的实际需求非常复杂,这是其中的一部分。我不知道该怎么做。如果您可以建议任何方法或提供任何提示,我可以编写查询。@Ganesh我编辑了我的答案以删除额外的
order by
子句,该子句在没有它的情况下可以工作。@Ganesh我编辑了我的答案以删除额外的
order by
子句,该子句在没有它的情况下也可以工作。