首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决以下结果?

如何解决以下结果?
EN

Stack Overflow用户
提问于 2011-12-10 05:33:00
回答 4查看 351关注 0票数 1

我拥有并编写了从SQL中选择并返回值的脚本,脚本使用"code = code + 1“方法来创建select的条件。

但有时这种情况不存在,我该怎么做呢?

在这里,实际的脚本部分:

代码语言:javascript
复制
SQL.execute("SELECT CodePro FROM Table WHERE CodeID = ?", x)
CodePro = SQL.fetchone()[0]

但是,当不返回值时,将打印以下错误

TypeError:“NoneType”对象不可订阅

EN

回答 4

Stack Overflow用户

发布于 2011-12-10 08:12:42

无论您使用什么库来执行SQL语句,都应该有一种方法来区分一个空的结果集和一个有一个或多个行的结果集。检查一下pyodbc教程。像这样的东西会有用的:

代码语言:javascript
复制
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]
票数 2
EN

Stack Overflow用户

发布于 2011-12-10 05:40:34

代码语言:javascript
复制
SQL.execute("SELECT CodePro FROM Table WHERE CodeID = ?", x)
try:
    CodePro = SQL.fetchone()[0]
except:
    # Your exit here
    break
票数 1
EN

Stack Overflow用户

发布于 2011-12-10 05:50:18

也许您可以修改SQL以避免Null结果。

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

代码语言:javascript
复制
SELECT COALESCE(CodePro,-1) FROM Table WHERE CodeID = ?

如果CodePro为空,它将返回-1。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8454667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档