「セール終了日が未設定の商品」を取り出したい時。 「未設定」は SQL では NULL として保存されています。NULL を判定するには = NULL ではなく IS NULL を使います:
SELECT * FROM products WHERE sale_ends_at IS NULL
⚠️ WHERE sale_ends_at = NULL と書いても 絶対にマッチしません。 SQL では NULL 同士は「等しいかどうか不明」扱いで、比較演算の結果も NULL になるためです。 これは SQL 初心者がハマる代表的な落とし穴。
期待結果:18 件(セール期限が設定されていない商品)。
📌 QA 視点:「データが空のときの表示テスト」「NULL ガード(コードで ?? '-')の動作確認」は IS NULL クエリで対象データを把握すると効率的。