#820

Открий коварен бъг с NULL и го заобиколи

Заявката «намери клиентите, които нямат нито една поръчка», формулирана с NOT IN, носи неприятен бъг: ако подзаявката съдържа дори един ред с NULL, целият NOT IN тихо връща нула редове — без грешка, без предупреждение. Класически капан на трисъстойностната логика в SQL. Безопасният еквивалент е NOT EXISTS: връща ред, когато вътрешната заявка не е намерила нищо, и е имунизиран срещу NULL. Пренапиши проверката «клиенти без поръчки» чрез NOT EXISTS, така че заявката да работи коректно дори при NULL в данните. Покажи идентификатора и email на такива клиенти, сортирай по идентификатор.

Примерен очакван изход

Така изглежда правилният отговор — броят редове е негов собствен, не е задължително да съвпада с таблиците в схемата.

idemail
3новый@email

Резултатът от заявката ти ще се покаже тук