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

PIVOT Oracle-複数の行データを、集計データなしで複数の列を持つ単一の行に変換します

    説明については何もしていません。説明もタグによって異なります。集計されていないため、暗黙の「group by」に含まれるため、結果セットに個別の行が表示されます。

    別の(ダミーの)骨材でそれをキャプチャすることもできます:

    select * from (
      select * from TEST2 where tag in ('LN', 'SN')
    )
    PIVOT
    (
      max(value) as value, max(description) as description
      for tag in ('LN' as ln, 'SN' as sn)
    )
    order by category, subcat, item, "Date";
    
    Date      SUBCAT CATEGOR IT LN_VALUE          LN_DESCRIPTION  SN_VALUE          SN_DESCRIPTION
    --------- ------ ------- -- ----------------- --------------- ----------------- ---------------
    24-OCT-13 290223 1219576 25 1105618           Lot Number      3x12mm            Serial Number  
    24-OCT-13 290223 1219576 28 1303757           Lot Number                                       
    18-JUN-15 354506 1219576 4  1403114           Lot Number                                       
    18-JUN-15 354506 1219576 9  7777777777        Lot Number      9.999999999999E12 Serial Number  
    

    または、*を使用する代わりに、必要な列を指定して、必要がない場合は中間結果セットから除外する可能性が高くなります。 :

    select * from (
      select category, subcat, item, "Date", tag, value
      from TEST2 where tag in ('LN', 'SN')
    )
    PIVOT
    (
      max(value) for tag in ('LN' as ln, 'SN' as sn)
    )
    order by category, subcat, item, "Date";
    
    CATEGOR SUBCAT IT Date      LN                SN              
    ------- ------ -- --------- ----------------- -----------------
    1219576 290223 25 24-OCT-13 1105618           3x12mm           
    1219576 290223 28 24-OCT-13 1303757                            
    1219576 354506 4  18-JUN-15 1403114                            
    1219576 354506 9  18-JUN-15 7777777777        9.999999999999E12
    


    1. postgresqlで緯度と経度で最寄りの場所を見つけます

    2. com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:mysql内

    3. MySQLでバックアップを行うにはどうすればよいですか?

    4. Oracleとプログラミング