SQL over CSV
Runs SQL against dropped CSV or TSV files in the browser — SELECT, WHERE, GROUP BY/HAVING, ORDER BY, LIMIT, CASE and a two-table JOIN — with the grammar on the page.
Drop a CSV and query it with SQL, in the browser, with nothing installed and nothing uploaded. Two files gives you a JOIN. The supported grammar is printed on the page, which answers "why did that not work" faster than an error message can.
Drop CSV or TSV files (more than one is fine)
Read in this tab. Nothing is uploaded. Files from Korean, Japanese, Chinese and Western Excel (CP949, Shift_JIS, GBK, Windows-1252) are recognised.
SQL
Syntax it accepts
SELECT [DISTINCT] column, expression [AS alias], table.* , *
FROM table [alias]
[ [INNER|LEFT] JOIN table [alias] ON condition ] -- two tables at most
[WHERE condition]
[GROUP BY expression, …] [HAVING condition]
[ORDER BY expression|alias|number [ASC|DESC], …]
[LIMIT n [OFFSET m]]
conditions: = <> < <= > >= AND OR NOT IN (…) LIKE 'Seoul%' BETWEEN a AND b IS [NOT] NULL
expressions: + - * / % || (string join) CASE WHEN … THEN … ELSE … END CAST(x AS INTEGER|REAL|TEXT)
aggregates: COUNT(*) COUNT(DISTINCT x) SUM AVG MIN MAX GROUP_CONCAT(x, ',')
functions: UPPER LOWER LENGTH TRIM LTRIM RTRIM SUBSTR(s, start, length) LEFT RIGHT REPLACE INSTR CONCAT
COALESCE IFNULL NULLIF IIF(condition, a, b) ROUND(x, places) ABS FLOOR CEIL SQRT POWER MOD TYPEOF
names: Korean column names work as they are; quote a name with a space as "name" or `name` -- comment, /* comment */NULL is never true in any comparison, LIKE ignores case, and dividing by zero gives NULL. In an aggregate query a column not in the GROUP BY takes its value from the first row of the group, the same as SQLite. There are no subqueries and no window functions.
How to use it
Drop one or more files
Each becomes a table named after the file. Rename it in the list above the editor if the name is awkward to type.
Write the query
SELECT, WHERE, GROUP BY with HAVING, ORDER BY, LIMIT, CASE and a two-table JOIN. Ctrl+Enter runs it. The example buttons under the box fill in a working query against your own table names.
Read the error position
A failed query reports the line and column where the parser stopped, which is usually one token past the actual mistake.
Export the result
As CSV with a BOM for Excel, or as JSON for anything that reads JSON.
Common questions
Are subqueries and window functions supported?
No. This is a SQL subset written for this site, not SQLite compiled to WebAssembly: SELECT with WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, CASE and a two-table JOIN, and that is the whole of it. The grammar panel is the exact list.
Does my data go to a server?
No. The parser and the evaluator both run in this tab. That is the reason the feature set is smaller than a real database’s, and it is also the reason you can point it at a file you would never upload.
Can I use Korean column names?
Yes, as they are. A name with a space in it needs quotes — either "double quotes" or backticks.
The error message is in Korean
The query engine’s twenty-five parse and evaluation messages are Korean only, because each is asserted word for word in its tests. The syntax panel beside the editor is written in both languages and covers the same ground.
Feed it from
SQL Formatter
Formats SQL with configurable keyword case, indentation and comma placement, across major dialects.
CSV Join
Joins two tables on a key column with inner, left, right or outer semantics and shows unmatched rows.
CSV Filter & Sort
Filters rows with column conditions, sorts on several keys and picks the columns to keep.
Pivot Table
Groups rows by one or two columns and aggregates with count, sum, average, min, max or distinct.
Next
These accept what this tool produces, so the result can go straight in.
Quick Chart
Draws a bar, line, area, pie or scatter chart from a table with round-number axes and a legend, and exports it as SVG or PNG.
CSV Join
Joins two tables on a key column with inner, left, right or outer semantics and shows unmatched rows.
CSV to Excel
Writes one or many CSV files into an .xlsx workbook with typed columns, a header row and filters.
CSV Viewer
Opens a large delimited file with type detection, column stats and sorting, without loading it all into memory.
CSV Cleaner
Trims cells, normalises headers, fixes number and date formats and reports rows with the wrong column count.
Currency Converter
Converts between about thirty currencies at the ECB’s daily reference rates, crossed through the euro, or at a rate you type in.