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

nullの数が少ないものからnullがないものまでの列を使用して行を並べ替えます

    これはかなり苦痛です。基本的に、1つの方法はcaseの巨大な追加を使用します 次のような表現:

    order by 
        (case when cod_t1 is null then 1 else 0 end)
        + (case when cod_t2 is null then 1 else 0 end)
        + (case when cod_t3 is null then 1 else 0 end)
        + ...
    

    コードをとして保存するようにデータモデルを修正する方がはるかに簡単です。 列ではなく。次に、集計を使用できます:

    select id, quarter
    from mytable
    group by id, quarter
    order by count(cod) desc
    


    1. 自動化されたクラウドデータベース展開のガイド

    2. Oracle®からのSalesforceの更新

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

    4. MySQLデータディレクトリを変更する方法は?