[英]How can I pass variables through an SQL statement in loop? - Python
conn=pyodbc.connect('Driver={SQL Server};'
'Server=test123;'
'Trusted_Connection=yes;')
data = []
date_x = ["202101","202010","202007"]
business_y = ["sales","marketing","tech"]
for i in date_x, business_y:
sql_query = """
Select name, period, business, purchase_date
From test_table
Where period = ? #(date_x)
AND business = ? #(business_y)
"""
conn.execute(sql_query)
data.append(pd.read_sql(sql_query, conn))
print(data)
我正在尝试通过循环运行此 SQL 语句,并且每次迭代我都想填充占位符“?” 使用上面示例中所示的正确变量并执行查询,将结果写入变量数据
这应该可行,假设 date_x 和 business_y 的长度总是相同的
data = pd.DataFrame()
date_x = ["202101","202010","202007"]
business_y = ["sales","marketing","tech"]
counter = 0
for i in date_x:
sql_query = """
Select name, period, business, purchase_date
From test_table
Where period = {}
AND business = {}
""".format(date_x[counter], business_y[counter])
counter +=1
#print(sql_query)
conn.execute(sql_query)
data = data.append(pd.read_sql(sql_query, conn))
结果:
Select name, period, business, purchase_date
From test_table
Where period = 202101
AND business = sales
Select name, period, business, purchase_date
From test_table
Where period = 202010
AND business = marketing
Select name, period, business, purchase_date
From test_table
Where period = 202007
AND business = tech
更新以显示如何执行并将结果存储到 DF
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.