Parameters in BigQuery

Senior Data Engineer • Contractor / Freelancer • GCP & AWS Certified
Search for a command to run...

Senior Data Engineer • Contractor / Freelancer • GCP & AWS Certified
No comments yet. Be the first to comment.
Short, practical posts on SQL and BigQuery — from core language features to advanced query patterns. A reference for data practitioners at every level.
I was doing some exploratory data analysis on a number of tables I didn’t have much information about and, unfortunately, didn’t know their grain. I needed a quick way to validate my assumptions about the table grain, identify contradicting observati...
Here's a useful Dataform concept: pre_operations and post_operations. As the name implies, these represent a set of actions that run before and after the main operation (table, view, or SQL operations

BigQuery has always been a SQL engine for tabular data. Object tables add an interesting twist to that. Instead of rows containing values, an object table gives you one row per file — pointing at da

Query your data lake with warehouse-grade security and performance — without moving a single file.

Ever run a heavy BigQuery SQL query, processed gigabytes of data — and then accidentally closed the tab or forgot to save the results? 😬 Don't re-run it. Your results are still there. BigQuery automa

You can use query parameters in BigQuery hashtag#SQL (now in the console as well!) — but how are they different from variables, and when should you use each?
Both parameters and variables act as placeholders and have a defined data type. The difference is where their value comes from and how they’re used.
Parameters (like @corpus)
👉 Are not computed inside the query
👉 Are passed from the outside (Python, UI, API, etc.)
Variables (DECLARE, SET)
👉 Are defined and computed inside a SQL script or stored procedure
👉 Let you store a value and reuse it later in the same script
So what’s the real difference?
➡️ Variables are essential for Dynamic SQL (EXECUTE IMMEDIATE)
➡️ Parameters can filter data, but cannot control identifiers (e.g. table or column names)
🚨 Security
When values come from user input or external sources, parameters are the safer choice—they reduce the risk of SQL injection.
🚅 Performance
Parameters may allow the optimizer to reuse execution plans, while variables can sometimes prevent that.
Found it useful? Check out to my Analytics newsletter at notjustsql.com.