WHERE句におけるCASE WHEN
メニューを表示するにはスワイプしてください
条件付きフィルタリングは、特定の条件に応じてテーブル内の各行に異なる基準を適用する手法。これは、カラム値に基づいて柔軟に結果を絞り込みたい場合に特に有用。SQLのCASE WHEN式は、WHERE句内で使用することで、このような動的なフィルタリングロジックを実現可能。CASE WHENを利用することで、すべての行に単一の条件を適用するのではなく、各行のデータに応じて異なるフィルタリング基準やルールを設定できる。この手法は、クエリ内で複雑なビジネスロジックを直接処理する必要がある場合に強力。
123456789101112SELECT title, genre, rating FROM movies WHERE CASE WHEN genre = 'Action' THEN rating >= 8.5 WHEN genre = 'Drama' THEN rating >= 9.0 ELSE rating >= 8.0 END;
上記のクエリでは、CASE WHENがWHERE句内で使用され、映画のジャンルごとに異なる評価基準が適用されている。"Action"ジャンルの場合、評価が8.5以上の映画のみが選択される。"Drama"ジャンルでは、さらに高い9.0が基準。他のジャンルは8.0以上で含まれる。CASE WHEN式は各行ごとに評価され、その結果によって行がフィルタを通過するかどうかが決まる。CASEブロック内の条件が真の場合、その行は結果セットに含まれる。この方法により、複数のクエリや複雑なORやANDの組み合わせを使わずに、高度なフィルタリングロジックを実装可能。
1234567891011SELECT title, release_year, box_office FROM movies WHERE CASE WHEN box_office >= 500000000 THEN release_year >= 2000 ELSE release_year < 2000 END;
1. WHERE 句で CASE WHEN を使用する利点は何ですか?
2. 空欄を埋めて WHERE 句を完成させてください。コメディは rating が7以上、ドラマは rating が8以上のものを選択します。他のジャンルは除外してください。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 13
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 1. 章 13