Как игнорировать имена столбцов sql через Python?

Я пытаюсь запустить sql-запрос через python, но каждый раз, когда я удаляю две последние строки кода, я получаю сообщение об ошибке, которого я не понимаю - я пытаюсь запустить приведенный ниже код, и это строки кода. которые я стер:

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: Execution failed on sql 'select b.* from trade.trades a inner join trade.legs b where a.tradeid = b.tradeid where a.productmaintypeid = 'InterestRateCapFloor' limit 10': ('HY000', "[HY000] [Cloudera][Hardy] (80) Syntax or semantic analysis error thrown in server while executing query. Error message from server: Error while compiling statement: FAILED: ParseException line 1:83 missing EOF at 'where' near 'tradeid' (80) (SQLExecDirectW)")

нам нужен минимальный воспроизводимый пример

IanS 22.03.2018 15:39

Можем ли мы также увидеть ошибку? Может даже код? Попробуйте достать нам MCVE

Zack Tarr 22.03.2018 15:39

и правильно отформатированный код :)

IanS 22.03.2018 15:39

Я собираюсь добавить правильный код

pepperjohn 22.03.2018 15:41

DatabaseError: Выполнение не удалось на sql 'select b. * From trade.trades внутреннее соединение trade.legs b, где a.tradeid = b.tradeid, где a.productmaintypeid =' InterestRateCapFloor 'limit 10': ('HY000', "[HY000 ] [Cloudera] [Hardy] (80) Ошибка синтаксиса или семантического анализа на сервере при выполнении запроса Сообщение об ошибке от сервера: Ошибка при компиляции оператора: FAILED: строка ParseException 1:83 отсутствует EOF в 'where' near 'tradeid' ( 80) (SQLExecDirectW) ")

pepperjohn 22.03.2018 15:46

Приносим извинения за плохой код. Помогает ли приведенное выше сообщение об ошибке?

pepperjohn 22.03.2018 15:46

Конечно будет. Я добавил это к вопросу в редактировании. Я не эксперт по пандам, поэтому я бы подождал, пока кто-нибудь раскроет этот вопрос, и тогда они смогут больше помочь.

Zack Tarr 22.03.2018 15:48

Вы говорите, что ошибка SQL возникает только тогда, когда вы добавляете две строки кода Python после в запрос sql?

IanS 22.03.2018 15:51
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
8
237
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Измените свой SQL-запрос на

select b.* from trade.trades a inner join trade.legs b where a.tradeid = b.tradeid AND a.productmaintypeid = 'InterestRateCapFloor' limit 10 

по сути вам нужно удалить лишнее где.

Также проверьте, поддерживает ли ваша база данных ключевое слово limit.

GauravS 22.03.2018 15:55

Привет всем, большое спасибо за вашу помощь. Вы были правы, это была просто глупая ошибка sql, а не ошибка Python. отсортировано сейчас! с функцией замены или без нее

pepperjohn 22.03.2018 15:58

Другие вопросы по теме