python - 使用 python 和 pymssql 获取行号范围之间的行

python - Fetching rows in between a range of rownumbers with python and pymssql

我想使用 python 包 pymssql 从数据库中获取特定范围的行号。我正在使用以下似乎不起作用的代码

# connection details to SQL
con = pymssql.connect("some connection credentials")

df = pd.read_sql("""SELECT
            [col1], 
            [col2],
            WHERE rownum 
            BETWEEN 0 AND 1000""", 
            con = con)

显示以下错误:

(207, "Invalid column name 'rownum'.DB-Lib error message 20018, severity
16:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib
error message 20018, severity 16:\nGeneral SQL Server error: Check 
messages from the SQL Server\n")

我做错了什么?这不是连接问题,如果我选择前 1000 行,它会完美运行。

您似乎想使用 ROW_NUMBER() 窗口函数,您可以使用类似这样的查询来实现:

sql = """\
SELECT [id], [txtcol] 
FROM 
    (
        SELECT [id], [txtcol], ROW_NUMBER() OVER (ORDER BY id) AS [rownum]
        FROM test10k
    ) AS subquery
WHERE [rownum] BETWEEN 2 AND 4
"""
crsr.execute(sql)