基于第2列值多次选择第1列值的SQL查询
如何在Oracle中为以下场景编写查询 输入基于第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
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
子句,该子句在没有它的情况下也可以工作。