熊猫read_sql导入NULL为0

时间:2019-09-25 22:09:37

标签: sql sql-server python-3.x pandas pyodbc

编辑: 显然我的连接(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)')

0 个答案:

没有答案