Sort Rows
Put the rows in the order you want, and keep them there.
What it does
Sort Rows orders the whole table by a column you pick. Nothing is added and nothing is removed. Only the order changes.
Clicking a column header sorts the grid too, and that is the right tool for a quick look. The difference is where the order lives. A header sort is a view of the data on your screen. A Sort Rows step is part of the pipeline: it survives a reload, it goes into an export, and every step you add after it reads the rows in that order.
That last part is what makes it worth a step. Limit Rows, Remove Duplicates and a forward Fill Missing all mean something different depending on which row comes first. Sort Rows is how you decide.
Sort the table
- Type sort in the Search transforms box, in the Pipeline panel.
- Select Sort Rows in the results.
- Open Sort by and pick a column.
- Set Direction. Smallest first is A to Z and 1 to 9; Largest first is the reverse.
- Click Apply.
The grid reorders at once, and the step joins your pipeline where you can edit or delete it later.
Sort by a second column
Then by breaks ties. Rows that hold the same value in the first column are put in order by the second one, with its own direction.
Sorting a support export by priority alone leaves every high-priority ticket in whatever order it arrived. Add opened_at as the second column and the oldest high-priority ticket comes first, which is the list somebody can actually work down.
| ticket | priority | opened_at |
|---|---|---|
| T-114 | high | 2026-03-01 |
| T-127 | high | 2026-03-04 |
| T-103 | low | 2026-02-19 |
Leave Then by empty for a single-column sort. Picking the same column twice does nothing, so the step ignores it.
Where the blanks go
A blank cell has no place in an ordering: it is not larger or smaller than anything. Blank values settles it.
- At the end is the default, and is what a spreadsheet does. Sort by revenue, largest first, and the rows with no revenue sit at the bottom where they belong.
- At the start is useful when the blanks are the problem you are looking at, for example when you are about to fill them.
The choice applies to both sort columns. Databases differ on where blanks land by default, so the step always says, rather than leaving it to chance.
Tips
- Sort before Limit Rows to make "the first 100" mean the first 100 by something. On its own, Limit keeps the grid's current order.
- Sort before a forward Fill Missing so values carry down in time order rather than file order.
- Text sorts by character, so 10 comes before 9 in a text column. Run Convert Type first if the column should be numbers.
- Dates that arrived as text sort alphabetically, which is right for 2026-03-14 and wrong for 14/03/2026. Convert those too.
- To rank rather than reorder, use Window Function. It adds a rank column and leaves the rows alone.
For SQL users
The step is one ORDER BY, with the blank position stated on every term:
SELECT * FROM data ORDER BY "priority" ASC NULLS LAST, "opened_at" ASC NULLS LAST
Sorting a view does not make the order permanent by itself. It is permanent here because the step becomes part of the chain, and every step after it selects from this one.
Try Sort Rows with sample data →Related Operations
- Top / Bottom Rows - Show top or bottom N rows by column value
- Limit Rows - Keep only the first N rows
- Window Function - Add a rank without reordering the rows