Skip to main content

Що роблять NULLS FIRST і NULLS LAST?

NULLS FIRST і NULLS LAST - це параметри, які керують тим, де саме опиняться значення NULL під час сортування в SQL.

За замовчуванням NULL вважається невизначеним значенням, і різні СУБД (PostgreSQL, Oracle, SQLite та ін.) розміщують його по-різному. Щоб задати порядок явно, використовують ці параметри.

NULLS FIRST

Розміщує всі NULL на початку результату.

sql
SELECT name, salary FROM employees ORDER BY salary ASC NULLS FIRST;

Навіть якщо сортування йде за зростанням, рядки з NULL будуть найпершими.

NULLS LAST

Розміщує всі NULL у кінці результату.

sql
SELECT name, salary FROM employees ORDER BY salary DESC NULLS LAST;

Незалежно від спадання, порожні значення опиняться у самому низу списку.

Навіщо це потрібно

Без вказівки NULLS FIRST/LAST порядок рядків з NULL може бути різним:

  • у деяких системах вони вважаються «меншими за все»,
  • в інших - «більшими за все».

Тому ці параметри потрібні, щоб контролювати позицію порожніх значень явно.

Підсумок:

  • NULLS FIRST - NULL на початку результату;
  • NULLS LAST - NULL у кінці;
  • використовується з ORDER BY, щоб задати точний порядок сортування за наявності пропусків.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.