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

OracleSQL-複数の行から値を取得する

    Oracleのどのバージョンでも、このようにデータをピボットできます。

    SELECT id,
           MAX( CASE WHEN key = 'name' THEN value ELSE null END ) name,
           MAX( CASE WHEN key = 'height' THEN value ELSE null END ) height,
           MAX( CASE WHEN key = 'awesomeness' THEN value ELSE null END ) awesomeness
      FROM facts
     WHERE id IN (1,2,3)
     GROUP BY id
    

    11gを使用している場合は、PVOTを使用することもできます 演算子。

    ただし、これがデータモデルを代表するものである場合、そのようなエンティティ属性データモデルは一般的にかなり非効率的です。一般に、nameの列を持つテーブルを使用した方がはるかに適しています。 、heightawesomeness 、など。




    1. PHPとMySQLの日付形式の違いの管理

    2. UbuntuでRailsを実行すると問題が発生する

    3. 日付ごとにSQLデータベースからデータを取得しますか?

    4. 列で合計金額に達するまで行を選択します(mysql)