簡體   English   中英

我該如何解決以下結果?

[英]How can I solve the following result?

我有一個腳本從SQL編寫一個select並返回值,腳本使用“code = code + 1”方法來制作select的條件。

但有時條件不存在,我該如何處理?

這里是實際的腳本部分:

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

但是,如果未返回任何值,則會打印以下錯誤

TypeError:'NoneType'對象不可訂閱

無論您使用什么庫來執行SQL語句,都應該有一種方法來區分空結果集和具有一行或多行的結果集。 查看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以避免Null結果。

比如在SQLServer中,使用這個:

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

如果CodePro為空,它將返回-1。

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

一種選擇是用try / except包圍它,並讓“except”將CodePro設置為一個值,讓你知道它沒有找到任何東西(例如:-1)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM