как выполнять различные инструкции в bigquery на основе значения параметра

# #sql #google-bigquery

Вопрос:

Я готовлюсь к отображению данных из data-studio через соединитель bigquery.

В bigquery я буду передавать значение параметра durationvalue типа int. На основе значения параметра,

Мне нужно выполнить различные инструкции sql, динамически создав строку, содержащую запрос, и, наконец, вернуть любой из результатов. Поэтому я использую выражение case для разных значений и ключевое слово EXECUTE для выполнения

   declare durationvalue int64 default 1; -- this is the parameter i need to declare in data-stuido
        declare query string default "";   -- this is just a variable for processing
        with a as 
        (
        SELECT * ..
        ),

        b as
        (SELECT * ..
        ),

         f as
         (
        SELECT case when durationvalue=1

        THEN
        query="SELECT * from a where timestamp between ...." --dynamically create a string amp;

        EXECUTE query --dynamically execute the dynamic string but here i get the error 

        when durationvalue=2
        query="SELECT * from a where timestamp between ...." --dynamically create a string amp;

        EXECUTE query

        END
        )
        SELECT * from f  --this is the result i want to display as report data
 

После запуска этого я получаю ошибку:

Syntax error: Unexpected identifier "query" at [30:1]

Я также пробовал ВЫПОЛНИТЬ НЕМЕДЛЕННО и тоже не работал над этим

     EXECUTE IMMEDIATE query
Syntax error: Expected keyword ELSE or keyword END but got keyword EXECUTE at [29:1]
 

Я не уверен, как это исправить или реализовать. Кто-нибудь может, пожалуйста, помочь?