例えば下記のように複雑な条件に基づいてレコードを抽出する場合、WHERE を使うと残念なことになります。 SELECT T.id, ( CASE WHEN /*難解極まりない条件1*/ false THEN 1 WHEN /*難解極まりない条件2*/ false THEN 2 WHEN /*難解極まりない条件3*/ false THEN 3 ELSE 0 END ) AS stat FROM tbl T WHERE ( CASE WHEN /*難解極まりない条件1*/ false THEN 1 WHEN /*難解極まりない条件2*/ false THEN 2 WHEN /*難解極まりない条件3*/ false THEN 3 ELSE 0 END ) = 2 とても保守性が低いと思います。 WHERE を無くして stat を使用してアプリケーションレイヤーで絞り込むことも出来ますが、そうす
![GROUP BY を使用せずに HAVING を使う - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/5970f3d1a61fbd346fd4d515c4376d270e179f67/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9R1JPVVAlMjBCWSUyMCVFMyU4MiU5MiVFNCVCRCVCRiVFNyU5NCVBOCVFMyU4MSU5QiVFMyU4MSU5QSVFMyU4MSVBQiUyMEhBVklORyUyMCVFMyU4MiU5MiVFNCVCRCVCRiVFMyU4MSU4NiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NTU4NTE5ZTJjZjBmYmU0YWVlMGNlNTEzOWQ2NmJkMzg%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwQXJpbWFSeXVub3N1a2UmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWFjYzQ0MTkzNDBkMWQ1N2NhZWYwY2Q0YmU5OWYxNTE0%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D83ae40a6fe0853b4ed3cc03698497eef)