SQL NULLS LAST

Forces NULL values to the bottom — already the default for ASC, but not for DESC.

What & Why

NULLS LAST forces NULLs to the end of the sort. This already happens automatically with ASC in Postgres — but DESC's default is actually the opposite (NULLS FIRST), so this keyword matters most when sorting descending and still wanting NULLs at the bottom.

See How It Works

BUSINESS QUESTION

Sort product feedback from highest NPS score to lowest and keep missing scores at the bottom.

iduser_idfeature_idratingnps_scorecommentcreated_at
1101159Clear and useful2024-01-25 12:15:00+00
210224NULLExport worked well2024-02-20 15:40:00+00
3103147Helpful setup flow2024-03-18 09:05:00+00
410433NULLNeeds clearer timing2024-04-08 17:30:00+00
EXAMPLE QUERY
SELECT id, user_id, nps_score FROM product.feedback
ORDER BY nps_score DESC NULLS LAST;
RESULT — NULLs last
iduser_idnps_score
11019
31037
2102NULL
4104NULL

DESC sorts known scores high to low; NULLS LAST keeps missing values at the bottom.

Now You Try

Practice this concept

Product wants deprecated features ordered from most recently deprecated to oldest, with active features at the end.

Available schema
product

Prefix tables with product.table_name.

nameteamdeprecated_at
product.features
ColumnType
idinteger
nametext
descriptiontext
teamtext
released_attimestamp with time zone
deprecated_attimestamp with time zone
internal_priorityinteger
query.sql
Beginner business practice

Sign up free to try it on a real business scenario