Я использую ibm_db_dbi для соединения с базой данных DB2, и мне нужно передать несколько предикатов в SQL.У меня есть пример кода ниже, который работает, но у меня возникают трудности при передаче нескольких предикатов в SQL.Цель состоит в том, чтобы передать запрос в DB2, а затем записать данные обратно в список или фрейм данных в Python
. Вот запрос, который я хочу передать в базу данных:
select someStuff
from tableA a join tableB b on a.key = b.key
where a.value = %s and a.date between %s and %s
У меня есть фрейм данных, содержащий три столбца (атрибут value, date1 и date 2) и набор значений в каждом из столбцов.Мой план состоял в том, чтобы передать данные с помощью цикла for и выполнить запрос столько раз, сколько у меня есть строк в кадре данных, а затем добавить каждый результат обратно в объект списка.
Я пытаюсь достичь своей цели из скромного, простого примера запроса.До сих пор я был в состоянии выполнить запрос, который содержит один параметр, но мне было трудно сделать его расширяемым до трех.Проблема в том, что я не знаю, как ссылаться на три отдельных «столбца» в ссылке на объект запроса ниже.Любая помощь приветствуется
Ниже приведен мой тестовый запрос, который работает до сих пор:
blahList = [-123,123]
dataDB2 = []
for item in blahList:
aTestSQL = """
select '%s' value from sysibm.sysdummy1
"""
query = aTestSQL % (item)
curDB2 = conDB2.cursor()
curDB2.execute(query)
dataDB2.append(curDB2.fetchone())