我正在学习构建一个Python函数,该函数从用户那里获取一些输入并将其传递给该函数以作为SQL语句的一部分执行。
def sales(sale_date,prod_type,prod_category):
db.execute("""select prod_name,quantity,price_per_product from sales
where sale_date = (%s) and prod_type = (%s) and prod_category =(%s)""",
(sale_date,prod_type,prod_category)
我想知道如何修改上面的函数,以便如果不提供其中一个参数,我仍将执行该函数,但是缺少的参数将不会添加为过滤器。
也就是说,如果sale_date为Null(或None),我该如何修改上面的函数。谢谢
答案 0 :(得分:0)
使用默认参数并分别处理个案怎么样?看看这个片段:
def sales(sale_date=None, prod_type=None, prod_category=None):
if sale_date is not None and prod_type is not None and prod_category is not None:
db.execute("""select prod_name,quantity,price_per_product from sales
where sale_date = (%s) and prod_type = (%s) and prod_category =(%s)""",
(sale_date,prod_type,prod_category)
# Handling other cases
elif ... :
pass
else:
pass
您可以针对每种情况提供单独的SQL语句。