Редактировать: Очевидно, мое соединение (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] [Драйвер ODBC 17 для SQL Server] [SQL Server] Произошла ошибка деления на ноль. (8134) (SQLFetch)')