在Python中,如何编写只提取列表中可用的特定列的sql查询?

2024-10-02 00:22:11 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我使用以下查询从Python中的SQL Server中提取数据:

df = db.query("SELECT * FROM rpt_SalesHistoryMAST where GLPostDate>'2017-08-31' order by GLPostDate;")

此表由500多列组成。我有一个100列的列表,我想拉

我怎么能用Python编写一个sql查询,只提取列表中的那些特定列呢


Tags: 数据fromdf列表dbsqlbyserver
1条回答
网友
1楼 · 发布于 2024-10-02 00:22:11

您可以使用join构建一个逗号分隔的列名字符串,然后将其格式化到SQL语句中:

>>> column_names = ["first_name", "last_name", "email"]  # sample data
>>> column_string = ",".join(f"[{x}]" for x in column_names)
>>> column_string
'[first_name],[last_name],[email]'
>>> sql = f"SELECT {column_string} FROM [tablename] WHERE ..."
>>> sql
'SELECT [first_name],[last_name],[email] FROM [tablename] WHERE ...'

。。。或者,为了在列名可能包含右方括号的情况下更加健壮:

>>> column_names = ["start time", "duration [minutes]"]
>>> column_string = ",".join(f"[{x.replace(']',']]')}]" for x in column_names)
>>> column_string
'[start time],[duration [minutes]]]'

相关问题 更多 >

    热门问题