编辑: 显然我的连接(PYODBC)读入的NULL为0。我想在“较高”级别上更正此问题,因为我将读取许多SQL文件。为了防止这种情况,我在文档中找不到任何内容。有什么建议吗?
我正在将SQL文件/查询作为字符串导入,然后使用pd.read_sql查询我的数据库。在SQL Server中,我可以在NULL值之间进行计算,从而得出NULL值,但是在Python中,这会导致脚本出错。
查询在SQL Server中运行:
SELECT PurchaseOrderID, POTotalQtyVouched, NewColumn = PurchaseOrderID/POTotalQtyVouched FROM #POQtys;
这是运行查询后的所需输出(在SQL Server中有效):
PurchaseOrderID POTotalQtyVouched NewColumn
NULL NULL NULL
007004 8 875.5
008017 21 381.761904761905
008478 NULL NULL
在Python中运行查询:
query = '''
...
[Other code defining #POQTYs]
...
SELECT PurchaseOrderID, POTotalQtyVouched, NewColumn = PurchaseOrderID/POTotalQtyVouched FROM #POQtys;
'''
conn = pyodbc.connect('Driver={ODBC Driver 17 for SQL Server};'
'Server=MSS-SL-SQL;'
'Database=TRACE DB;'
'Trusted_Connection=yes;')
df = pd.read_sql(query, conn)
Python错误:
DataError :(“ 22012”,“ [22012] [Microsoft] [用于SQL Server的ODBC驱动程序17] [SQL Server]除以零错误。(8134)(SQLFetch)')