Читать ряды пачками из снежинки

В mysql, если мне нужно читать 10 строк за раз, я могу написать запрос как

select * from foo limit 10, 10

тогда я могу продолжать увеличивать смещение и читать всю таблицу.

Как мне сделать то же самое в снежинке?

Я пытался

select a, b from (select a, b from foo) tempview where rownum <= 100;

но это не работает.


person Knows Not Much    schedule 13.12.2016    source источник


Ответы (1)


Snowflake поддерживает синтаксис, очень похожий на MySQL, вы просто пишете

select * from foo limit 10 offset 10;

Дополнительные сведения и параметры см. В документации Snowflake для LIMIT.

Примечание. Если вы хотите сканировать такую ​​таблицу, для больших таблиц это не всегда может быть наиболее эффективным способом, так как вы увидите некоторые накладные расходы для каждого запроса. Итерация результата в клиенте может быть лучшим вариантом.

Наконец, если вы хотите перебрать результат сложного запроса и по какой-то причине действительно хотите использовать подход LIMIT, вы можете запустить свой запрос, а затем использовать RESULT_SCAN, чтобы перебрать результат. Таким образом, вы не будете повторно запускать запрос несколько раз.

person Marcin Zukowski    schedule 14.12.2016