首页 > 解决方案 > RasberryPi python 错误 - sqlite3.OperationalError: near "(": 语法错误 - 但在 Windows 中没有

问题描述

我在使用 sqlite3 的 python 代码中有问题。

这是我的代码。

conn = sqlite3.connect("test.db", isolation_level=None)
c = conn.cursor()
c.execute("WITH T AS (\
    SELECT dense_rank() over(partition by code order by win desc, profit desc, ma asc) as rank, * \
    FROM ENV_ANALYZE WHERE LOSE = 0\
    )\
    SELECT code, name, ma, percent, cutLength, profit, win, lose FROM T where rank = 1")

在 Windows 中,它有效!没有问题。

所以,我把这段代码复制到了 RasberryPi。但它会发生这样的错误

Traceback (most recent call last):
  File "/home/pi/python/test.py", line 27, in <module>
    SELECT code, name, ma, percent, cutLength, profit, win, lose FROM T where rank = 1")
sqlite3.OperationalError: near "(": syntax error

所以我修复了这样的测试,无论如何它都可以在 RasberryPi 中使用。删除了 dense_rank 选项。

c.execute("WITH T AS (\
    SELECT 1 as rank, * \
    FROM ENV_ANALYZE WHERE LOSE = 0\
    )\
SELECT code, name, ma, percent, cutLength, profit, win, lose FROM T where rank = 1")

但我需要那个 dense_rank 选项。所以我需要第一个代码,我想在 RasberryPi 中运行。

你对此有什么想法吗?

标签: pythonsql

解决方案


推荐阅读