Объяснение
SQL описывает требуемый набор данных. Логически FROM и WHERE определяют строки до SELECT; ORDER BY задаёт порядок, который иначе не гарантирован. NULL означает неизвестность, поэтому проверяется IS NULL.
Задача для самостоятельного решения
Почему WHERE price = NULL не находит пустые цены?
Показать разбор ответа
Сравнение с NULL даёт unknown, а WHERE оставляет только true. Используйте price IS NULL; ноль и неизвестная цена — разные значения.