以动态方式将列名传递到SQL语句中-Python-SQL Server


query = ('SELECT ? from table', fields)

"字段"value = name, surname, date示例

我可以把"字段"放在列表中,但我不知道在查询中放多少(?(。因为,字段变量有时包含5个,有时包含10个列名。我正在尝试将列名动态地传递给查询。

我该如何解决这个问题?

一个语句可以这样形成;(?,?,?("取决于字段的长度。

# create a comma separated list of question marks
# then surround with parenthesis  
values = '('+', '.join(['?']*len(fields))+')'

query=('SELECT '+values+' from table',fields) 

并不是说这会起作用,因为您没有分享如何连接或查询SQL Server的细节。

相反,您可以使用join-str方法:

table_name = 'MyTable'
fields = ['col1','col2','col3']
values = ', '.join(fields)

statement = 'SELECT '+values+' from '+table_name
query
'SELECT col1, col2, col3 from MyTable'
query=(statement)

连接查询字符串

str1 = "SELECT "
for fieldname in fields:
str1 = str1 + fieldname + ", "
select_query_string = str1[0:-2] + " from " +table

然后在查询中使用

query=(select_query_string)

最新更新