Поставьте курсор.выборка в определенную строку?

#python #sql-server #stored-procedures #database-cursor

Вопрос:

Я работаю над проектом, в котором мне нужно получать данные с моего SQL-сервера, но есть одна загвоздка. В общей сложности в конкретном столбце содержится около 100 000 строк, из которых мне нужны данные, но мне нужны только последние 20 000-30000 строк.

Я использую строку случайного подключения и хранимую процедуру, но есть ли способ выбрать конкретную строку для начала? (например, пусть он начинается со строки 70 000)

 try:
    CONNECTION_STRING = 'DRIVER=' driver ';SERVER=' server ';DATABASE=' databaseName ';UID=' username ';PWD='  password

    conn = pyodbc.connect(CONNECTION_STRING)

    cursor = conn.cursor()
    storedproc = "*"
    cursor.execute(storedproc)
    row = cursor.fetchone()
    while row:
        
        OID = ((int(row[1])))
        print(OID)
 

Итак, мой вопрос: есть ли способ (например) установить cursor.fetchone строку 70 000 вместо 1? Или есть другой способ сделать это?

Заранее спасибо!

Комментарии:

1. Почему бы не использовать ORDER BY и OFFSET...FETCH в вашем SQL, если вам нужна «70-я» строка? Хотя вы не можете сделать это с помощью хранимой процедуры, вам придется сделать это с SELECT помощью . Если вы получаете 100 строк из процедуры и хотите получить 70-ю строку, вам нужно INSERT будет перенести эти данные в (временную) таблицу, а затем SELECT в 70-ю строку из нее.

2. Хорошо, спасибо, тогда я думаю, что это не в моих руках, потому что я не выполняю процедуры хранения. но я пойду за тем, кто это делает, и попытаюсь отредактировать это вместе с ними.