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

Oracle複数の列を1つに結合

    UNPIVOTを使用できます :

    Oracleセットアップ

    CREATE TABLE your_table ( spot, id, sunday, monday, tuesday, wednesday, thursday, friday, saturday ) AS
      SELECT 'A', 1, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4 FROM DUAL UNION ALL
      SELECT 'A', 2, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45 FROM DUAL UNION ALL
      SELECT 'A', 3, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5 FROM DUAL;
    

    クエリ

    SELECT *
    FROM   your_table
    UNPIVOT ( Value FOR Day_of_week IN (
      sunday    AS 1,
      monday    AS 2,
      tuesday   AS 3,
      wednesday AS 4,
      thursday  AS 5,
      friday    AS 6,
      saturday  AS 7
     ) );
    

    出力

    S ID DAY_OF_WEEK VALUE
    - -- ----------- -----
    A  1           1    .1
    A  1           2   .15
    A  1           3    .2
    A  1           4   .25
    A  1           5    .3
    A  1           6   .35
    A  1           7    .4
    A  2           1   .15
    A  2           2    .2
    A  2           3   .25
    A  2           4    .3
    A  2           5   .35
    A  2           6    .4
    A  2           7   .45
    A  3           1    .2
    A  3           2   .25
    A  3           3    .3
    A  3           4   .35
    A  3           5    .4
    A  3           6   .45
    A  3           7    .5
    


    1. SQLiteデータベースのテーブルを一覧表示する2つの方法

    2. EM12cでDB12cのリポジトリが可能になりました

    3. MS SQL Server方言の例に関するSQL(DDL、DML)のチュートリアル

    4. PostgreSQLでのPi()のしくみ