我试图通过python运行一个sql查询,但每次我删除最后两行代码时,我都会收到一个我不明白的错误 - 下面的代码是我试图运行的,这些是我删除的代码行:
1 - columnNames = [n.replace('b','') for n in list(results.columns.values)]
2 - results.columns = columnNames
import pyodbc
import pandas
cnxn = pyodbc.connect("DSN=XXX",autocommit=True)
sql = "select b.* from X.Y a inner join X.X b where a.tradeid = b.tradeid where a.productmaintypeid = 'InterestRateCapFloor' limit 10"
results = pandas.read_sql(sql, cnxn)
错误消息
DatabaseError:sql上的执行失败'select b。*来自trade.trades内部联接trade.legs b其中a.tradeid = b.tradeid其中a.productmaintypeid ='InterestRateCapFloor'限制10':('HY000', “[HY000] [Cloudera] [Hardy](80)执行查询时服务器中抛出的语法或语义分析错误。来自服务器的错误消息:编译语句时出错:FAILED:ParseException行1:83缺少EOF在'where'附近' tradeid'(80)(SQLExecDirectW)“)
答案 0 :(得分:2)
将SQL查询更改为
select b.* from trade.trades a inner join trade.legs b where a.tradeid = b.tradeid AND a.productmaintypeid = 'InterestRateCapFloor' limit 10
基本上你需要删除额外的地方。