传递SQL查询表名作为参数

时间:2019-11-08 13:34:45

标签: string pandas postgresql

此问题的可能解决方案在这里: https://stackoverflow.com/a/6223961/12343395 它可能需要很多工作。 但是我已将表名存储为字符串格式,并希望根据需要调用它们。 我正在使用熊猫read_sql_query。因此,就像在params中一样,我在WHERE部分中传递了表名和一些参数。 WHERE部分很好,因为参数最初是字符串。但是在FROM部分, 我真的希望schema.table为非字符串。 这是一个片段。

SELECT "rainfall(mm)","tmin(C)","tmax(C)","TimeStamp"
FROM crop_tables[choose_crop][0]
WHERE "District_Name" = %s AND "Season" = %s
ORDER BY "TimeStamp" ASC

在这种情况下,crop_tables[choose_crop][0]'sagita_historic.soyabean_daily_analyses'。 但是FROM将因为它不接受字符串而抛出错误。因此,从本质上讲,我希望将'sagita_historic.soyabean_daily_analyses'剥离为非字符串。 有可能这样做吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

不确定我是否完全理解,但是也许可以吗?

SELECT "rainfall(mm)","tmin(C)","tmax(C)","TimeStamp"
FROM f"{crop_tables[choose_crop][0]}"
WHERE "District_Name" = %s AND "Season" = %s
ORDER BY "TimeStamp" ASC