Поскольку я использую DB2, чтобы выбрать часть базы данных посередине (например, спаривание лимитов / смещений), мне нужно сделать оператор подготовки другого типа. Пример, который мне дали, был такой:
ВЫБРАТЬ *
FROM (ВЫБРАТЬ col1, col2, col3, ROW_NUMBER () OVER () AS RN FROM таблицы) AS cols
ГДЕ RN МЕЖДУ 1 И 10000;
Который я адаптировал к этому:
ВЫБРАТЬ * ОТ (ВЫБРАТЬ ROW_NUMBER () НАД (ЗАКАЗАТЬ НА 2,3,4,6,7 ASC) КАК rownum ОТ ОПЕРАЦИЙ) КАК ГДЕ ГДЕ rownum> = 500 И rownum <1000 </p>
И когда я вызываю fetchall_arrayref (), я получаю 500 результатов, как хочу, но он возвращает только массив со ссылками на номер строки, а не все данные, которые я хочу получить. Я точно знаю, что именно этот код ПРЕДЛАГАЕТ делать так, как написано, и я попробовал несколько перестановок, чтобы получить желаемый результат без удачи.
Все, что я хочу, - это собрать все столбцы, как и мой предыдущий оператор prepare, в массив массивов:
ВЫБРАТЬ * ОТ TU_TRANSACTIONS ЗАКАЗАТЬ НА 2, 3, 4, 6, 7
но только в указанном разделе. Есть просто фундаментальная вещь, по которой я скучаю, и я просто не вижу ее.
Любая помощь приветствуется, даже если она сопряжена с конструктивной критикой.