Inlining mockup data
You can inline data in the query by using the BIND_VALUES() or BIND_SQL() functions for all features.
WITH
ID := INPUT(BIGINT),
NAME := INPUT(VARCHAR),
HELLO_MESSAGE := 'Hello, ' || NAME || '!',
SELECT
ID,
HELLO_MESSAGE
FOR
(ID, NAME) := BIND_VALUES(ARRAY[ROW(1, 'Alice'), ROW(2, 'Bob'), ROW(3, 'Charlie')]); sql
WITH
ID := INPUT(BIGINT),
NAME := INPUT(VARCHAR),
HELLO_MESSAGE := 'Hello, ' || NAME || '!',
SELECT
ID,
HELLO_MESSAGE
FOR
(ID, NAME) := BIND_SQL(SELECT id, name FROM (VALUES(1, 'Alice'), (2, 'Bob'), (3, 'Charlie')) as t(id, name)); sql
However, it's a better practice to use BIND_SQL() for the key, and mockup data in an EXTERNAL_SQL() for the value, using the SQL command VALUES() or UNNEST() array of rows depending on the backend.
WITH
ID := INPUT(BIGINT),
NAME := EXTERNAL_SQL(
`SELECT id, name FROM (VALUES(1, 'Alice'), (2, 'Bob'), (3, 'Charlie')) as t(id, name)`
ON `SELF.id = %ID`
AS ROW(ID BIGINT, NAME VARCHAR)
)[NAME],
HELLO_MESSAGE := 'Hello, ' || NAME || '!',
SELECT
ID,
HELLO_MESSAGE
FOR
ID := BIND_VALUES(ARRAY[1,2,3]); sql
See the backend particularities guide for more details.