⚙️ Settings
Line Number Stamper — Add Sequential Line Numbers to a List
The Line Number Stamper adds sequential numbers to every line of a list, starting from any number you choose. It's built for anyone who needs to add line numbers to text for a changelog, numbered reference list, or sequential ID column, without manually typing each number. Paste your list, set a starting number, and get numbered output instantly.
⚡ Key Takeaways
- Adds sequential numbers to every line, starting from any number you choose.
- Useful for continuing a numbered sequence from another document without restarting at 1.
- Blank lines are numbered like any other line by default.
- A quick way to turn a plain list into a numbered procedure or changelog.
What, Who, When & Why
| What it's for | Adds sequential numbers to every line of a list, starting from any number you choose. |
|---|---|
| Who it's for | Anyone preparing a numbered changelog, reference list, or sequential ID column. |
| When to use it | When a plain list needs an explicit order or reference index, or you're continuing a numbered sequence from another document. |
| Why it's needed | Manually typing sequential numbers next to dozens of lines is slow and easy to miscount. |
| Best way to use it | Remove blank lines first if you don't want them counted in the sequence, and set a custom starting number to avoid ID collisions. |
How to Use the Line Number Stamper
- Paste your list into the Input box, one item per line.
- Set the starting number (defaults to 1).
- The Output box shows every line prefixed with its sequential number.
- Click Copy to grab the numbered list.
Example
Given a list:
Set up environment Write tests Deploy to staging
Starting from 1, the numbered output becomes:
1. Set up environment 2. Write tests 3. Deploy to staging
Setting the starting number to 100 instead produces 100. Set up environment, 101. Write tests, and so on — useful when continuing a numbered list that started in another document, or when generating IDs that need to start above a certain threshold to avoid colliding with existing records.
Key Features
- Sequential numbering starting from any chosen number, not just 1.
- Works on lists of any length, numbering every line automatically.
- Instant, live preview as you edit your list.
- One-click copy of the numbered result.
Practical Use Cases
- Changelogs: number a list of changes or updates for a release note.
- Reference lists: add sequential IDs to a list for citation or lookup purposes.
- Step-by-step instructions: turn a plain list of steps into a numbered procedure.
- Generating test IDs: quickly create a sequential ID column for test data starting at a specific number.
- Continuing an existing sequence: pick up numbering where a previous document or list left off, rather than restarting at 1.
Tips for Best Results
- Remove blank lines from your input first if you don't want empty rows counted in the sequence.
- If you're building test data with IDs, set the starting number well above any existing IDs in your system to avoid accidental collisions.
- Combine with the Alphabetical Sorter first if you want your numbered list to also be in alphabetical order.
Related Terminology
Sequential numbering assigns each line a number that increases by one, starting from your chosen value — useful whenever a plain list needs an explicit order or reference index rather than relying on implicit position alone. This differs from a bulleted list, which has no inherent order, or a hash/ID system, which may not be sequential at all.
Important Considerations
Blank lines in your input are numbered the same as any other line by default, so remove empty lines first if you want your numbering to skip them. The numbering format uses a simple "N. " prefix — if you need a different format (like leading zeros, e.g. "001"), you'll need to adjust the output manually afterward.
Related Tools
Need to sort your list before numbering it? Use the Alphabetical Sorter first. To remove duplicate entries before assigning numbers, try the Duplicate Remover. If you're preparing test data with formatted values, the Delim Converter can add quotes or brackets around each numbered entry.
Frequently Asked Questions
How do I add line numbers to a list?
Paste your list into the Input box — every line is automatically numbered starting from 1 (or your chosen starting number) in the Output box.
Can I start numbering from a number other than 1?
Yes, set any starting number and the sequence will begin from there instead of 1 — useful for continuing a list or avoiding ID collisions.
Does it skip blank lines when numbering?
No, blank lines are numbered like any other line by default — remove them from your input first if you want the sequence to skip them.
Can I add leading zeros to the numbers, like "001"?
Not automatically — the tool uses a simple "N." format, so you'd need to adjust the output manually if you need zero-padded numbers.
WITH recent_orders AS (
SELECT
customer_id,
order_id,
order_date,
total_amount
FROM orders
WHERE order_date >= DATEADD(day, -30, GETDATE())
)
SELECT
customer_id,
COUNT(order_id) AS order_count,
SUM(total_amount) AS total_spent
FROM recent_orders
GROUP BY customer_id
ORDER BY total_spent DESC;
WITH RECURSIVE employee_hierarchy AS (
-- Anchor: top-level rows (no manager)
SELECT
employee_id,
manager_id,
employee_name,
1 AS level
FROM employees
WHERE manager_id IS NULL
UNION ALL
-- Recursive: join children to their parent's result
SELECT
e.employee_id,
e.manager_id,
e.employee_name,
eh.level + 1
FROM employees e
INNER JOIN employee_hierarchy eh
ON e.manager_id = eh.employee_id
)
SELECT *
FROM employee_hierarchy
ORDER BY level, employee_name;
-- Note: SQL Server / Oracle: drop the RECURSIVE keyword (just WITH employee_hierarchy AS (...))
SELECT
o.order_id,
c.customer_name,
o.order_date,
p.product_name,
oi.quantity
FROM orders o
INNER JOIN customers c
ON o.customer_id = c.customer_id
LEFT JOIN order_items oi
ON o.order_id = oi.order_id
LEFT JOIN products p
ON oi.product_id = p.product_id
WHERE o.order_date >= '2026-01-01'
ORDER BY o.order_date DESC;
SELECT
DATE_TRUNC('month', order_date) AS order_month, -- PostgreSQL
-- FORMAT(order_date, 'yyyy-MM') AS order_month, -- SQL Server
-- DATE_FORMAT(order_date, '%Y-%m') AS order_month, -- MySQL
COUNT(*) AS order_count,
SUM(total_amount) AS revenue
FROM orders
GROUP BY DATE_TRUNC('month', order_date)
ORDER BY order_month;
SELECT
customer_id,
order_id,
order_date,
total_amount,
ROW_NUMBER() OVER (
PARTITION BY customer_id
ORDER BY order_date DESC
) AS order_rank,
SUM(total_amount) OVER (
PARTITION BY customer_id
ORDER BY order_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS running_total
FROM orders;
CREATE PROCEDURE GetCustomerOrders
@CustomerId INT,
@StartDate DATE = NULL,
@EndDate DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT
order_id,
order_date,
total_amount
FROM orders
WHERE customer_id = @CustomerId
AND (@StartDate IS NULL OR order_date >= @StartDate)
AND (@EndDate IS NULL OR order_date <= @EndDate)
ORDER BY order_date DESC;
END;
-- Call it: EXEC GetCustomerOrders @CustomerId = 101, @StartDate = '2026-01-01';
MERGE INTO customers AS target
USING staging_customers AS source
ON target.customer_id = source.customer_id
WHEN MATCHED THEN
UPDATE SET
target.customer_name = source.customer_name,
target.email = source.email,
target.updated_at = GETDATE()
WHEN NOT MATCHED THEN
INSERT (customer_id, customer_name, email, created_at)
VALUES (source.customer_id, source.customer_name, source.email, GETDATE());
#FACC15
rgb(250, 204, 21)
rgb(98%, 80%, 8%)
hsl(46, 96%, 53%)
hsv(46, 92%, 98%)
cmyk(0%, 18%, 92%, 2%)
Tools for analysts, developers & QA engineers
33 free, browser-based utilities — text and list tools, SQL helpers, converters, and small productivity apps. Everything runs locally; nothing you type or paste is ever uploaded.
For Analysts
Clean lists, build SQL fragments, and reshape data without opening a spreadsheet.
For Developers
Format SQL, convert data formats, and handle everyday text and encoding tasks.
For QA Engineers
Generate test data, compare text output, and sanitize queries before sharing them.