我有一个SQL查询,仅使用where子句更改。我想将SQL查询存储为一个变量,将每个where子句存储为单独的变量。
以下是我正在使用的SQL查询:
查询1:
select a.prod_name,a.prod_cat,b.sale_date
from products a
join sales b on a.id = b.sale_id and b.type=new
查询2:
select a.prod_name,a.prod_cat,b.sale_date
from products a
join sales b on a.id = b.sale_id and b.type=modify
我计划编写一个Python脚本,该脚本将使用变量执行此查询。
答案 0 :(得分:0)
在这里,如果是Python,则要传递变量。如果您很想使用python,尽管如果您的情况是如此简单,那么为什么甚至要引入python,也可以使用简单的shell script
来解决。无论如何
import psycopg2
def redshift(type_var):
conn = psycopg2.connect(dbname='*********', host='*********.redshift.amazonaws.com', port='5439', user='****', password='*******8')
cur = conn.cursor();
cur.execute("begin;")
sql ="select a.prod_name,a.prod_cat,b.sale_date from products a join sales b on a.id = b.sale_id and b.type='%s'" %(type_var)
cur.execute(sql)
results = cur.fetchall()
print("Copy executed fine!"+results)
"""Call one with new"""
redshift('new');
"""Call two with modify"""
redshift('modify');