如何通过Python忽略sql列名?

时间:2018-03-22 14:37:43

标签: python sql pandas pyodbc

我试图通过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)“)

1 个答案:

答案 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 

基本上你需要删除额外的地方。