sql >> データベース >  >> RDS >> Oracle

Oracle SQL Query でテキスト内の一連の Number 値を変換する

    ここに 1 つのオプションがあります。コード内のコメントを読む。 1 行目から 13 行目のサンプル データ。クエリは 14 行目から始まります。

    SQL> with
      2  expl (id, name) as
      3    (select 1, 'car' from dual union all
      4     select 2, 'bus' from dual union all
      5     select 3, 'BB'  from dual union all
      6     select 4, 'SB'  from dual union all
      7     select 5, 'Ba'  from dual union all
      8     select 6, 'PA'  from dual union all
      9     select 7, 'HB'  from dual union all
     10     select 8, 'G'   from dual
     11    ),
     12  temp (col) as
     13    (select '1,4,7,8' from dual),
     14  -- split COL to rows
     15  spl as
     16    (select regexp_substr(col, '[^,]+', 1, level) val,
     17            level lvl
     18     from temp
     19     connect by level <= regexp_count(col, ',') + 1
     20    )
     21  -- join SPL with EXPL; aggregate the result
     22  select listagg(e.name, ',') within group (order by s.lvl) result
     23  from expl e join spl s on s.val = e.id;
    
    RESULT
    --------------------------------------------------------------------------------
    car,SB,HB,G
    
    SQL>
      

    1. PIVOT、UNPIVOT、およびリバースPIVOTステートメントを理解する

    2. SysBenchを使用してMySQLとMariaDBのパフォーマンスをベンチマークする方法

    3. MariaDBでのTAN()のしくみ

    4. MySQL CREATETEMPORARYTABLEエラー