我如何解决以下结果?

2024-09-27 19:23:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个从SQL中进行选择的脚本并返回值,该脚本使用“code=code+1”方法来创建select的条件。在

但有时候这种情况不存在,我怎么处理呢?在

下面是实际的脚本部分:

SQL.execute("SELECT CodePro FROM Table WHERE CodeID = ?", x)
CodePro = SQL.fetchone()[0]

但当没有返回值时,将打印以下错误

TypeError: 'NoneType' object is not subscriptable


Tags: 方法from脚本executesqltable情况code
3条回答

无论使用什么库来执行SQL语句,都应该有一种方法来区分空结果集和一个或多行的结果集。检查tutorial for pyodbc。这样的方法会起作用:

SQL.execute("SELECT CodePro FROM Table WHERE CodeID = ?", x)
row = SQL.fetchone()
if row:                        # check if there was at least one row returned
    CodePro = row[0]
SQL.execute("SELECT CodePro FROM Table WHERE CodeID = ?", x)
try:
    CodePro = SQL.fetchone()[0]
except:
    # Your exit here
    break

也许你可以修改SQL来避免空结果

例如在SQLServer中,使用以下命令:

SELECT COALESCE(CodePro,-1) FROM Table WHERE CodeID = ?

如果CodePro为空,则返回-1。在

要了解关于COALESCE的更多信息: http://msdn.microsoft.com/en-us/library/aa258244(v=sql.80).aspx

相关问题 更多 >

    热门问题