我在 PYTHON 的 sql 查询中多次使用 CASE 语句时遇到问题。不知道能不能把CASE语句去掉,创建一个模板,然后把模板参数放回原来的查询中。像这样:
case_stm_template =
crs.execute("""
CASE
WHEN level_1 = 'Corporate'
THEN
CASE
WHEN ssr.rating = 'A' OR ssr.rating LIKE 'A[+-]'
THEN 'Corp A'
WHEN ssr.rating = 'AA' OR ssr.rating LIKE 'AA[+-]'
THEN 'Corp AA'
WHEN ssr.rating = 'BBB' OR ssr.rating LIKE 'BBB[+-]'
THEN 'Corp BBB'
ELSE NULL
END
WHEN level_1 = 'Government' AND level_2 = 'Provincial'
THEN 'Prov'
WHEN level_1 = 'Government' AND level_2 = 'Federal'
THEN 'Canada'
ELSE NULL
END
""")
把这个放进
crs.execute("""
SELECT
...
case_stm_template,
SUM(...)
FROM ....
WHERE ....
GROUP BY
case_stm_template
""".format(...))
这不起作用。谁能帮我?谢谢!!!