代码之家  ›  专栏  ›  技术社区  ›  Ganesh

SQL查询根据第2列的值多次选择第1列的值

  •  1
  • Ganesh  · 技术社区  · 6 年前

    有人能帮我在Oracle中写一个关于下面场景的查询吗?

    输入

    Column1 Column2
    R        1
    S        2
    F        3
    

    产量

    RSSFFF

    ‘R’1次,‘S’2次,‘F’3次。

    2 回复  |  直到 6 年前
        1
  •  3
  •   Junjie    6 年前

    你可以使用 rpad 重复字母,以及 listagg 将它们连接成一行,就像这样。

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

    但是如果您有另一列来排序行,这就可以了,在本例中,我只使用 column2 .

        2
  •  2
  •   Gordon Linoff    6 年前

    一种方法使用 lpad() :

    select lpad(column1, column2, column1)
    from t;
    

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

    select listagg(lpad(column1, column2, column1)) within group (order by null)
    from t;