Let people filter results. Keep SQL private.

Write one query and choose which values people can change. Dynamic filters turn regions, dates and amounts into simple controls, so each person can get the results they need without editing your SQL.

Use filters shared with you on a free account. Create filters on Personal Plus ($30/month) and above.

One saved query. Four ways to find the rows you need.

Choose a region for the team.

Examples change every 9 seconds. Change any control to take over.

Author view shows the execution preview. Recipients see controls and results. Choose your values, then press Run query.

What you controlAuthor view · execution preview for this run
SELECT invoice, customer, region, amount, due, status
FROM ar.invoices
WHERE region = 'North'
  AND due >= '2026-10-01'
  AND amount > 1000
  AND status IN ('Open', 'Overdue')
ORDER BY invoice DESC
You choose the exposed filters. Each run uses its own values; the saved query definition stays yours. The Network Agent runs the query read-only.
Query StreamsShared query · Open invoices by region
For this demo: up to 1,000,000.
Status

Choose values, then run the query.

Recipients receive results. The SQL and database login stay private.
Open invoices by regionexample rowsResults only. The SQL stays private.
InvoiceCustomerRegionAmountDueStatus
1INV-20481Halden LogisticsNorth12,480.0023 Oct 2026Open
2INV-20480Mirren & CoWest3,215.5023 Oct 2026Open
3INV-20479Castellan FoodsSouth28,900.0021 Oct 2026Overdue
4INV-20478Oriel DentalNorth1,140.0020 Oct 2026
5INV-20477Wexford MarineEast9,765.2519 Oct 2026Open
6INV-20476Pell & HartleyWest4,400.0018 Oct 2026
2INV-20475Northgate ClinicsNorth17,320.8017 Oct 2026Overdue
8INV-20474Brightwater LtdSouth2,050.0016 Oct 2026

North · due from 1 Oct · over 1,000 · Open / Overdue

2 invoices match, 29,800.80 in total.

One saved query, different values for each run. You keep control of the logic; people choose only the filters you expose.

The right control for each value.

Query Streams looks at the type of each value in your WHERE clause and offers the control that fits it. You decide which ones to expose.

Text choices

region = 'North'

A text value becomes a select box. Type the options in yourself, or fill the list live from another query.

Dates and ranges

due >= '2026-10-01'

Date comparisons and BETWEEN ranges become calendar pickers, one for the start and one for the end.

Numbers and thresholds

amount > 1000

Thresholds, amounts and quantities become checked number inputs with a sensible default.

Multiple selections

status IN ('Open', 'Overdue')

An IN list becomes a set of choices you can tick. The list in the query grows and shrinks to match what was ticked.

Use ordinary SQL or named parameters.

Let Query Streams find the values in ordinary SQL, or name them yourself. Both work in the same query.

Write ordinary SQL and switch filters on

No special syntax. The values are found for you; in the query's Properties tab you choose which become controls and set their labels, defaults and drop-down options.

SELECT invoice, customer, amount, due
FROM ar.invoices
WHERE customer = 'Halden Logistics'
  AND due BETWEEN '2026-10-01'
                       AND '2026-10-31'
Three values found: a customer and a date range.

Or name each filter with an @ variable

Name a parameter yourself when you want full control over its label, default and allowed values from the start. Mix named parameters with found values in one query.

SELECT invoice, customer, amount, due
FROM ar.invoices
WHERE region = @region
  AND due >= @from_date
  AND status IN (@statuses)
Three named parameters: a region, a date and a list.

They choose. They never touch the SQL.

Grant someone permission to run a query and choose which filters they can set. They receive the results without getting your SQL code or database credentials. The Network Agent executes the query inside your network.

  • Only the values you allowThey can change a region or a date. They cannot edit the query's logic, its tables or its columns.
  • Read-only, enforcedOnly SELECT-type statements run. The agent refuses anything else before the database sees it.
  • The login never leavesDatabase credentials stay encrypted on the agent. Spreadsheets, browsers and apps receive results, never the connection.
  • Stop any timeRemove a person's access in the web portal and it ends at once.
Values go in. Results come back.The saved SQL stays inside your network.
Database + Network Agent Your saved SQL Allowed filtersNorthTheir choices Results onlyRows they are allowed to use
People change only the filter values you expose.

Where the controls appear.

The same saved query, the same filters, wherever the people who run it work.

In a spreadsheet

Run a saved query in Excel or Google Sheets. Results arrive as ordinary cells, ready for formulas, charts and pivots. Refresh when you need current figures.

The filters sit in the Query Streams side pane.
Illustrative examples
Excel and Google Sheets add-ins

On a phone or in a browser

Open saved-query results wherever you work. Set the allowed filters, press Run, and read the rows in the Data Viewer.

Exposed filters appear above the rows.
Illustrative examples
Data Viewer, phone and web

Through a REST API

Give your apps, vendors or factories targeted query results. Their software receives the allowed data; your SQL and source credentials stay private.

Each exposed filter becomes a request parameter.
Illustrative examples
Database REST API

Who needs which plan.

Recipients can use the filters you give them on a free account. Authors need a plan that includes filter creation.

Using filters: a free account

Anyone you have given permission to run a query uses its filters on a free account. No seat to buy. Sending run access requires sharing slots on your plan; see pricing for the allowance.

Building filters: Personal Plus and above

Adding Dynamic filters to your own saved queries, found or named, starts on Personal Plus. Recipients on Free can still use the filters on queries shared with them.

Compare every plan

Questions people ask about filters

Do the people using the filters need a database login?

No. The agent inside your network holds the database connection and its credentials stay encrypted there. People see the filter controls and the results, never a connection string, a table name or the SQL.

Which kinds of filter are there?

Text values become drop-downs, dates become date pickers, numbers become number boxes and IN lists become pick-lists. Each is worked out from the value's type in your WHERE clause.

Can I control what appears in a drop-down?

Yes. Type a fixed list of options in the query's Properties tab, or fill the list from another SQL query that returns the allowed values.

Do I have to use @ variables?

No. Ordinary SQL is enough; the values are found for you. Use an @ variable when you want to name the filter and set its label, type and default yourself. Both can sit in the same query.

Can several people run the same query with different filters at once?

Yes. Each person runs the same saved query with their own values at the same time, and one person can run it several times into separate worksheet tabs.

Give people useful choices. Keep the query yours.

Create filters on Personal Plus and above. The people you grant run access to can use a free account.

See filter plans