Export

✓ functional

Send results onward in the format the next person or tool will actually appreciate.

One Export… command, from the grid menu or toolbar, opens a single dialog for any result set. Pick a format, choose Copy to clipboard or Save to file…, and you are done. Standard data formats and programming-language generators live together, and unused formats can be hidden in Settings › Results › Export.

SQLly
SQLly Export Results dialog
The consolidated Export dialog: format list grouped into Standard and Programming, with clipboard/file destinations.
Shared export options, also under Settings › Results › Export, apply across formats: how NULL is written, how cell line breaks are handled, whether to include headers, optional gzip, and the batch filename pattern {schema}_{table}_{date}.{format}.

Every example below exports this small two-row result set:

SELECT id, customer, amount, created FROM orders;
-- id | customer | amount  | created
--  1 | Acme     | 1250.00 | 2026-09-01
--  2 | Globex   |  890.50 | 2026-09-02

Standard formats

CSV .csv

Comma-separated, RFC-style quoting. An Excel-compatible variant adds a UTF-8 BOM.

id,customer,amount,created
1,Acme,1250.00,2026-09-01
2,Globex,890.50,2026-09-02

TSV .tsv

Tab-separated - paste-friendly into spreadsheets.

id	customer	amount	created
1	Acme	1250.00	2026-09-01
2	Globex	890.50	2026-09-02

JSON .json

An array of objects, one per row.

[
  { "id": 1, "customer": "Acme", "amount": 1250.00, "created": "2026-09-01" },
  { "id": 2, "customer": "Globex", "amount": 890.50, "created": "2026-09-02" }
]

JSON Lines .jsonl

One JSON object per line - ideal for streaming and log pipelines.

{"id":1,"customer":"Acme","amount":1250.00,"created":"2026-09-01"}
{"id":2,"customer":"Globex","amount":890.50,"created":"2026-09-02"}

Markdown .md

A pipe table with a separator row; pipes inside cells are escaped.

| id | customer | amount  | created    |
| -- | -------- | ------- | ---------- |
| 1  | Acme     | 1250.00 | 2026-09-01 |
| 2  | Globex   | 890.50  | 2026-09-02 |

HTML .html

A standalone <table>.

<table>
  <thead><tr><th>id</th><th>customer</th><th>amount</th><th>created</th></tr></thead>
  <tbody>
    <tr><td>1</td><td>Acme</td><td>1250.00</td><td>2026-09-01</td></tr>
    <tr><td>2</td><td>Globex</td><td>890.50</td><td>2026-09-02</td></tr>
  </tbody>
</table>

XML .xml

A row-per-element document.

<rows>
  <row>
    <id>1</id>
    <customer>Acme</customer>
    <amount>1250.00</amount>
    <created>2026-09-01</created>
  </row>
  <row>
    <id>2</id>
    <customer>Globex</customer>
    <amount>890.50</amount>
    <created>2026-09-02</created>
  </row>
</rows>

INSERT .sql

INSERT statements, quoted for your connection's dialect (SQL Server, PostgreSQL, or MySQL).

INSERT INTO orders (id, customer, amount, created) VALUES
  (1, 'Acme', 1250.00, '2026-09-01'),
  (2, 'Globex', 890.50, '2026-09-02');

Temp Table .sql

A CREATE for a temp table plus the inserts - a self-contained snapshot you can paste into another session. Dialect-aware.

CREATE TABLE #orders (
  id        INT,
  customer  NVARCHAR(4000),
  amount    DECIMAL(18,2),
  created   DATE
);
INSERT INTO #orders (id, customer, amount, created) VALUES
  (1, 'Acme', 1250.00, '2026-09-01'),
  (2, 'Globex', 890.50, '2026-09-02');

SQL Values .sql

A bare VALUES list to drop into a CTE or IN clause. Dialect-aware.

VALUES
  (1, 'Acme', 1250.00, '2026-09-01'),
  (2, 'Globex', 890.50, '2026-09-02')

Excel (XLSX) .xlsx

A real .xlsx workbook - a formatted Excel table with banded rows and an auto-filter header. Because it's binary, this format saves to a file (clipboard is disabled for it).

SQLLY Export .sqllyexport

SQLly's own envelope format - carries the rows plus their column types and metadata for lossless round-tripping back into SQLly.

Programming formats

These generators emit ready-to-paste source code that embeds the result rows as data - handy for fixtures, seed data, and quick scripts. One example per language:

C# .cs

var rows = new[]
{
    new { Id = 1, Customer = "Acme", Amount = 1250.00m, Created = "2026-09-01" },
    new { Id = 2, Customer = "Globex", Amount = 890.50m, Created = "2026-09-02" },
};

Python .py

rows = [
    {"id": 1, "customer": "Acme", "amount": 1250.00, "created": "2026-09-01"},
    {"id": 2, "customer": "Globex", "amount": 890.50, "created": "2026-09-02"},
]

Rust .rs

struct Order { id: i64, customer: &'static str, amount: f64, created: &'static str }

let rows = vec![
    Order { id: 1, customer: "Acme", amount: 1250.00, created: "2026-09-01" },
    Order { id: 2, customer: "Globex", amount: 890.50, created: "2026-09-02" },
];

JavaScript .js

const rows = [
  { id: 1, customer: "Acme", amount: 1250.00, created: "2026-09-01" },
  { id: 2, customer: "Globex", amount: 890.50, created: "2026-09-02" },
];

TypeScript .ts

interface Order { id: number; customer: string; amount: number; created: string; }

const rows: Order[] = [
  { id: 1, customer: "Acme", amount: 1250.00, created: "2026-09-01" },
  { id: 2, customer: "Globex", amount: 890.50, created: "2026-09-02" },
];

Kotlin .kt

data class Order(val id: Int, val customer: String, val amount: Double, val created: String)

val rows = listOf(
    Order(1, "Acme", 1250.00, "2026-09-01"),
    Order(2, "Globex", 890.50, "2026-09-02"),
)

Swift .swift

struct Order { let id: Int; let customer: String; let amount: Double; let created: String }

let rows = [
    Order(id: 1, customer: "Acme", amount: 1250.00, created: "2026-09-01"),
    Order(id: 2, customer: "Globex", amount: 890.50, created: "2026-09-02"),
]

Java .java

record Order(int id, String customer, double amount, String created) {}

List<Order> rows = List.of(
    new Order(1, "Acme", 1250.00, "2026-09-01"),
    new Order(2, "Globex", 890.50, "2026-09-02")
);

Go .go

type Order struct {
    ID       int
    Customer string
    Amount   float64
    Created  string
}

rows := []Order{
    {1, "Acme", 1250.00, "2026-09-01"},
    {2, "Globex", 890.50, "2026-09-02"},
}

PHP .php

$rows = [
    ['id' => 1, 'customer' => 'Acme', 'amount' => 1250.00, 'created' => '2026-09-01'],
    ['id' => 2, 'customer' => 'Globex', 'amount' => 890.50, 'created' => '2026-09-02'],
];

C++ .cpp

struct Order { int id; std::string customer; double amount; std::string created; };

std::vector<Order> rows = {
    {1, "Acme", 1250.00, "2026-09-01"},
    {2, "Globex", 890.50, "2026-09-02"},
};

The exact field names, types, and value quoting follow the result's columns and your connection's dialect - the samples above are representative. Any format you don't use can be hidden under Settings › Results › Export.