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

postgresの行をマージし、nullでない場合は値を最新のものに置き換えます

    最初のgroup by organization_core_id slugの最後のnull以外の値を持つ行のIDを取得します およびname 次に、テーブルに参加します:

    select
      t.organization_core_id, 
      t1.slug,
      t2.name
    from (
      select 
        organization_core_id, 
        max(case when slug is not null then id end) slugid, 
        max(case when name is not null then id end) nameid
      from tablename
      group by organization_core_id
    ) t 
    left join tablename t1 on t1.id = t.slugid
    left join tablename t2 on t2.id = t.nameid
    

    デモ をご覧ください。 。
    結果:

    > organization_core_id | slug           | name      
    > -------------------: | :------------- | :---------
    >                    1 | dolphin        | Dolphin v2
    >                    2 | sea-horse-club | Sea Horse 
    



    1. hibernate.jpa.criteria.BasicPathUsageException:基本タイプの属性に参加できません

    2. MySQLマルチ削除。参照された行を複数削除することは可能ですか?

    3. XamppとMySQLが起動していません

    4. PostgreSQLの一意のインデックスと文字列の大文字小文字