RividTech
Blog
SQLCSVJSON

Run SQL on CSV in Your Browser — No Upload, No Install

September 1, 2026 · RividTech

You do not need a database to think in SQL. Most CSV questions are SQL questions: filter rows (WHERE), aggregate groups (GROUP BY), join two files (JOIN), and export the answer. Modern browser engines such as DuckDB-Wasm can run exactly that query on a local file — and the interest spiked again with the DuckDB 2.0 alphas in 2026.

RividTech takes the simpler, zero-install version of the same idea: do the SQL-style operation with browser-only tools, then generate real CREATE TABLE and INSERT statements when you need to load the data into MySQL, Postgres, or SQLite. Nothing is uploaded — see Why Browser-Only CSV Tools Are Safer for Your Data.

Start clean: SQL hates messy CSVs

Every SQL-on-CSV failure I see is a data-shape failure first: wrong delimiter, BOM byte, mixed line endings, or ragged rows. Run this 60-second check before anything else:

Full workflow: How to Clean Messy CSV Files.

WHERE: filter rows without a database

The SQL you want is:

SELECT id, email, amount
FROM orders.csv
WHERE status = 'paid' AND amount > 100;

Browser equivalent: open Data Process, search and filter on status and amount, hide columns you do not need, and download the result. For quick distributions before filtering, check Data Stats.

GROUP BY: aggregate and pivot

Revenue by region and status is a pivot:

SELECT region, status, SUM(amount) AS revenue, COUNT(*) AS orders
FROM orders.csv
GROUP BY region, status;

Run it with Pivot Table — pick the row/column fields, choose sum or count, and export the summary. JSON sources work too: flatten first with Flatten JSON, background in Flatten Nested JSON for Spreadsheets and CSV.

JOIN: combine two CSVs on a key

Orders plus users on user_id:

SELECT o.id, u.email, o.amount
FROM orders.csv o
LEFT JOIN users.csv u ON o.user_id = u.id;

Use Merge CSV: stack files with identical headers, or join on a key column when they differ. Dedupe the key first with Remove Duplicates or the join will fan out. Compare snapshots with Diff CSV.

Export real SQL: CREATE TABLE + INSERTs

When the answer needs to live in a real database, generate the load script instead of hand-writing it:

  • CSV to SQL — CSV to CREATE TABLE + INSERT for MySQL, Postgres, SQLite.
  • TSV to SQL — same for tab-separated exports.
  • JSON to SQL — flatten a JSON array of objects into inserts.

Watch types and dates: a column that mixes 12/31/2025, 2025-12-31, and blanks will import as text. Normalize headers and values with Column Tools and Find & Replace before generating SQL.

Round-trip: SQL results back to CSV, JSON, Excel

Stakeholders rarely want .sql files. After filtering or joining, export the format they will actually open:

Large files: sample before you query

A 2 GB export will freeze most tabs if you open it raw. Prototype the filter on a slice with Sample Data (head, tail, or random), confirm counts in Data Stats, then split the full file with Split CSV by row count or column value and process each part.

Getting started

Preview, fix the delimiter, validate, then run one SQL-style step: filter in Data Process, pivot in Pivot Table, join in Merge CSV, and generate load scripts with CSV to SQL. Prefer the shell? Compare with Tools to Process CSV Files in the Terminal.

Ready to work with your data?

Browse free browser-only CSV, TSV, JSON, and Excel tools — your files never leave your device.

Search tools