Sql-запрос работает при выполнении в базе данных, но не на Python

#python #sql

#python #sql

Вопрос:

Черт возьми, я пытаюсь выполнить приведенный ниже запрос. Он работает при выполнении в базе данных, но при попытке выполнить в скрипте python выдает ошибку:

OperationalError: near "(": syntax error

Запрос:

 SELECT * FROM (VALUES (1,2), (3,4)) t1 (c1, c2)
 

Python:

 cursor.execute('SELECT * FROM (VALUES (1,2), (3,4)) t1 (c1, c2)') 
 

ОШИБКА ВЫВОДА

OperationalError: near "(": syntax error

Ожидаемая проблема

Я думаю, что есть проблема при создании временной таблицы t1 с полями c1 и c2.

Комментарии:

1. используйте cursor.execute(‘ВЫБЕРИТЕ * ИЗ ЗНАЧЕНИЙ (1,2), (3,4) ‘), как vise

Ответ №1:

попробуйте это…

 cursor.execute("SELECT * FROM (VALUES ('1','2'), ('3','4')) t1 ('c1', 'c2')")
 

Комментарии:

1. Получаю ту же ошибку… OperationalError: рядом с «(«: синтаксическая ошибка

2. Что это за база данных? Я не признаю синтаксис допустимым для создания таблицы. Я распознаю его как синтаксис производной таблицы, но производная таблица существует только в течение всего срока действия запроса.

Ответ №2:

Это должно сработать:

 sql = '''SELECT * FROM (VALUES ('1','2'), ('3','4')) t1 ('c1', 'c2')'''
cursor.execute(sql)
 

Комментарии:

1. Тогда, я думаю, ошибка связана не с синтаксисом, а с логикой. Что это за язык базы данных? Вы можете найти текущий язык SQL Server, выполнив следующий скрипт: select * from sys.syslanguages where langid=@@langid таким образом, мы можем предложить решения, специфичные для этого языка

2. Я использую базу данных DB2.