我定义了一个名为 CODE 的参数。
CODE 是字符串列表,例如“Car”、“Bike”、“Boat”等。
我需要执行具有以下模式的 SQL 查询:
SELECT *
FROM Table
WHERE CODE = Car
或
SELECT *
FROM Table
WHERE CODE = Bike
等等。
是否可以直接在查询中使用参数?
就像下面这样:
SELECT *
FROM Table
WHERE CODE = Parameter CODE?
编辑:
我正在使用 Python 进行查询。变量 CODE 来自数据帧的列,如下所示:
import pandas as pd
import pyodbc
CODE=Table1['CODE']
dbconnection=pyodbc.connect('Driver={SQL Server};'
'Server=XXXX,1234;'
'Database=AAAA;'
'Trusted_Connection=yes;')
sql="SELECT * FROM DATABASE WHERE CODE = 'Bike'"
Selection=pd.read_sql(sql,dbconnection)
如果 CODE 中的值不是一长串,那么您可以执行以下操作:
select * from Table where CODE IN ('Car', 'Bike', 'Boat', 'Motor', ...);
您可以使用Python字符串格式来替换该值。一种格式是 f 字符串语法
#OLD (your approach)
sql="SELECT * FROM DATABASE WHERE CODE = 'Bike'"
#NEW - with formatting
sql=f"SELECT * FROM DATABASE WHERE CODE = '{CODE}'"