res_vod = db.execute("""
SELECT CAST ((SUM(r.SalesVolume)/1000.0) AS decimal(6,1))
FROM RawData r
INNER JOIN Product p
ON r.ProductId = p.ProductId
INNER JOIN Calendar c
ON r.DayId = c.DayId
WHERE c.WeekCodeInYear BETWEEN 30 AND 50
AND p.VODEST IN ('VOD')
AND p.Distributor IN ({})
GROUP BY c.WeekCodeInYear
ORDER BY c.WeekCodeInYear""".format(', '.join(["'" + studio + "'" for studio in _studios])) )
上面的代码允许我添加一个列表作为查询的参数。但是,我的要求是添加多个参数。
在上面的代码中_studios
是包含参数的列表。你知道吗
_studios = ["WARNER","TF1","GAUMONT","PATHE","STUDIOCANAL","FRANCETV","M6SND"]
我还有另外一张单子:
_vodest = ["VOD","EST"]
我想在查询中添加这个作为p.VODEST
的参数。你知道吗
我可以通过使用%
轻松地完成这一点,但是必须注意的是,列表包含双引号("WARNER")
,但是SQL查询需要单引号('WARNER')
Always use parametrized sql如果可能:
相关问题 更多 >
编程相关推荐