我在Python上使用Pandas库,我想知道是否有一种方法可以在SQL查询中使用列表变量(或者series更好?),比如uID_list
,它也可以在相同的Python代码中执行。例如:
dict = {'a': 1, 'b': 2, 'c':3}
uID_series = pd.Series(data=dict, index=['a','b','c'])
uID_list = uID_series.toList()
假设这个uID_list
可以在以后更改,因此它并不总是由1, 2, 3
组成。
如何在下面的SQL查询中“插入”这个uID_list
变量?
sql =
f'''
CREATE PROCEDURE SearchForUsers(@uIDinput AS INT(11))
AS
BEGIN
SELECT username
FROM users_table
WHERE uID in @uIDinput
END
EXECUTE SearchForUsers {uID_list}
'''
请注意,在数据库中创建一个新表对我来说不是一个选择,因为它与工作有关,我的主管对保持数据库干净非常严格。
我实际上想做的是在users_table
表中看到一个username
的选择,其中users_table
中的uID
与存储的uID
的变化集合相匹配,该集合由uID_list
给出。uID_list
依赖于python代码的其余部分,在那里它可以被改变和操纵。
2条答案
按热度按时间blmhpbnm1#
您只是想提取数据吗?在存储过程之外会更容易
eagi6jfj2#
您可以首先将列表转换为元组,然后将其作为
pandas.read_sql_query
的参数传递。假设
cnx
是连接的名称,请尝试以下操作: