PARAM

Evaluates a provided query parameter and returns its value as TEXT.

Syntax

PARAM(<parameter>)
Parameter Description Supported input types
<parameter> Constant string containing the name of the query parameter to evaluate. TEXT

Return Type

TEXT

Specifying query parameters

To use the PARAM function, you need to define query parameters using the SET query_parameters command. The function relies on a request property named query_parameters in JSON format. Use the following schema:

query_parameters: json_array | json_object
json_array: [ json_object,  ]
json_object: { "name" : parameter_name, "value" : parameter_value }

You can include a single query parameter in the request properties, for example:

{ "name": "country", "value": "USA" }

or multiple query parameters:

[ 
  { "name": "country", "value": "USA" },
  { "name": "states", "value": "WA, OR, CA" },
  { "name": "max_sales", "value": 10000 }
]

Example

The following example shows how to use a Common Table Expression (CTE), through a WITH clause, to generate input data and apply a query parameter in a computation. The WITH clause defines a temporary dataset, and the query evaluates whether each row matches the parameter value using PARAM.

SET query_parameters = [{ "name": "track_name", "value": "Nürburgring" }];

WITH fastest_laps(name, difficulty, fastest_lap, driver) AS (
  SELECT 'Monaco', 'Hard', '1:10.166', 'Lewis Hamilton'
  UNION ALL
  SELECT 'Silverstone', 'Medium', '1:27.097', 'Max Verstappen'
  UNION ALL
  SELECT 'Nürburgring', 'Easy', '1:29.468', 'Valtteri Bottas'
)
SELECT *
FROM fastest_laps
WHERE name = PARAM('track_name');

Returns

name difficulty fastest_lap driver
Nürburgring Easy 1:29.468 Valtteri Bottas