Проблема: где окажутся
NULL при сортировке? Например в PostgreSQL при ORDER BY ... DESC NULL окажутся в началеSELECT name, salary
FROM employees
ORDER BY salary DESC;
Явно контролируем позицию
NULL (Postgres / Oracle / SQLite). Так NULL всегда внизу и не попадут в топ зарплат:SELECT name, salary
FROM employees
ORDER BY salary DESC NULLS LAST
LIMIT 10;
В обратном случае для возрастания:
ORDER BY hire_date ASC NULLS FIRST;
MySQL и SQL Server нативного
NULLS FIRST / NULLS LAST не поддерживают — используйте обход:-- MySQL
ORDER BY (salary IS NULL), salary DESC;
-- SQL Server
ORDER BY CASE WHEN salary IS NULL THEN 1 ELSE 0 END, salary DESC;
🔥 Так что,
NULLS FIRST/LAST делает сортировку предсказуемой и удобной.➡️ SQL Ready | #практика