Используйте объявление и цикл в BigQuery для вставки данных - PullRequest
3 голосов
/ 30 марта 2019

Я просто практикуюсь с Bigquery и пытаюсь использовать один из моих SQL-запросов к нему

declare @id int 
select @id = 1
while @id >=1 and @id <= 1000
begin
    insert into Quincy values(@id, 'Rank: ' + convert(varchar(5), @id))
end

Этот запустил вставку 1000 раз в таблицу, я заметил, что bigquery не позволяет объявить значение для него, поэтому @id здесь не работает. Могу ли я, как если бы есть какой-либо доступный метод для запуска цикла, как это на BigQuery?

1 Ответ

1 голос
/ 30 марта 2019

Не рекомендуется использовать логику на основе курсора при работе с SQL, скорее вам нужно настроить себя на обработку на основе множеств. Особенно с BigQuery, который еще не поддерживает [пока] обработку курсора и процедурную логику, но, к счастью, имеет богатую поддержку массивов, которые можно использовать здесь

Поскольку ваш вопрос немного абстрактен - приведенный ниже пример тоже абстрактен, но дает представление

#standardSQL
INSERT INTO `project.dataset.Quincy` (id, col)
WITH array_to_loop_through AS (
  SELECT id 
  FROM UNNEST(GENERATE_ARRAY(1, 1000, 1)) id
)
SELECT id, CONCAT('Rank: ', CAST(id AS STRING))
FROM array_to_loop_through
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...