Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ ORDER BY句におけるCASE WHEN | セクション
SQLにおけるCASE WHENの習得

bookORDER BY句におけるCASE WHEN

メニューを表示するにはスワイプしてください

クエリ結果を単一のカラム値だけでなく、より柔軟な方法で並べ替える必要があるシナリオは多く存在します。たとえば、新作、興行収入の高い映画、特定のジャンルなど、特定の種類のレコードを結果の先頭に表示したい場合があります。単純な ORDER BY 句だけでは、必要な柔軟性を得られないことがあります。ここで、ORDER BY 句内の CASE WHEN 式が役立ちます。これにより、複雑な条件に基づいたカスタムかつ動的な並べ替えロジックを定義できます。

123456789101112131415
SELECT title, genre, rating, release_year, box_office FROM movies ORDER BY CASE WHEN release_year >= 2015 AND box_office > 500000000 THEN 1 -- Recent blockbusters WHEN rating >= 8.5 THEN 2 -- Highly rated movies ELSE 3 -- All others END, rating DESC;
copy

上記のクエリでは、ORDER BY 句内の CASE WHEN 式によって各映画に並べ替えの優先順位が割り当てられています。2015年以降に公開され、興行収入が5億を超える映画は最優先(1)となり、最初に表示されます。次に、評価が8.5以上の映画がグループ化され(2)、それ以外の映画が続きます(3)。各グループ内では、評価の降順でさらに並べ替えられます。この方法により、単一カラムの並べ替えでは実現できない、きめ細かな表示順制御が可能となります。

12345678910111213
SELECT title, genre, rating, release_year FROM movies ORDER BY CASE WHEN genre = 'Animation' THEN rating WHEN genre = 'Action' THEN release_year ELSE box_office END DESC;
copy

1. ORDER BY句でCASE WHENを使用すると、SQLクエリの柔軟性がどのように向上しますか?

2. コメディを最初、次にドラマ、残りのジャンルをその後に並べるように空欄を埋めてください。

question mark

ORDER BY句でCASE WHENを使用すると、SQLクエリの柔軟性がどのように向上しますか?

正しい答えを選んでください

question-icon

コメディを最初、次にドラマ、残りのジャンルをその後に並べるように空欄を埋めてください。

SELECT     title,     genre FROM     movies ORDER BY     CASE         WHEN genre = 'Comedy' THEN 1         WHEN genre = 'Drama' THEN 2         ELSE      END;
(No output is shown because this query only changes the order of results.)
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  16

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  16
some-alt