简体   繁体   中英

How to use two variables in one SQL statement?

I've got a problem regarding SQL and Python.

In my code I'm trying to search for two elements using a entry field. It's either the CommercialCode or the ItemNumber . This code for the ItemNumber works perfectly fine (just the last part is important):

SQL_Query = pd.read_sql_query("Select top 1 UnitWeight, GlobalItemDescription.ItemNumber, GlobalItemDescription.Description,  GlobalItemMaster_new.CommodityCode, CommercialCode, GlobalItemMaster_new.DRICode  from dbo.GlobalItemDescription inner join dbo.GlobalItemMaster_new on GlobalItemDescription.ItemNumber = GlobalItemMaster_new.ItemNumber where dbo.GlobalItemDescription.ItemNumber like '%s'" % eingabe, conn)

But actually I want it like this:

SQL_Query = pd.read_sql_query("Select top 1 UnitWeight, GlobalItemDescription.ItemNumber, GlobalItemDescription.Description,  GlobalItemMaster_new.CommodityCode, CommercialCode, GlobalItemMaster_new.DRICode  from dbo.GlobalItemDescription inner join dbo.GlobalItemMaster_new on GlobalItemDescription.ItemNumber = GlobalItemMaster_new.ItemNumber where dbo.GlobalItemDescription.ItemNumber like '%s' OR dbo.GlobalItemMaster_new.CommercialCode like '%s'" % eingabe, eingabe2,conn)

When I execute the code above I get this error:

TypeError: not enough arguments for format string

You have to use paranthesis , so it should be % (eingabe, eingabe2) instead of % eingabe, eingabe2

 SQL_Query = pd.read_sql_query("Select top 1 UnitWeight, GlobalItemDescription.ItemNumber, GlobalItemDescription.Description,  GlobalItemMaster_new.CommodityCode, CommercialCode, GlobalItemMaster_new.DRICode  from dbo.GlobalItemDescription inner join dbo.GlobalItemMaster_new on GlobalItemDescription.ItemNumber = GlobalItemMaster_new.ItemNumber where dbo.GlobalItemDescription.ItemNumber like '%s' OR dbo.GlobalItemMaster_new.CommercialCode like '%s'" % (eingabe, eingabe2),conn)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM