Python 2.7 MSSQL Неверный синтаксис рядом с ордером
Я искал верх и низ, чтобы найти решение этой проблемы, я получаю сообщение об ошибке, когда добавляю Order by в утверждение:
(156, "Неверный синтаксис рядом с ключевым словом" Порядок ". Сообщение об ошибке DB-Lib 20018, серьезность 15:\n Общая ошибка SQL Server: проверка сообщений от SQL Server\n")
Код в моем.py файле:
db = pymssql.connect(server='DESKTOP-3G1FB9B\SQLEXPRESS', user='sa', password='', database='Osmium')
cursor = db.cursor()
sql = "(SELECT TOP 1 * FROM delayed Order by ID ASC)"
cursor.execute(sql)
Если я удаляю "Заказ по идентификатору ASC", он выполняется нормально, но мне нужно упорядочить результаты и я не могу найти решение. Ввод запроса в SQL Server 2014 Management Studio и добавление "Osmium.dbo.delayed" возвращает правильный результат, мне просто нужно, чтобы он работал в скрипте Python (2.7)
SELECT TOP 1 * FROM Osmium.dbo.delayed Order by ID ASC
2 ответа
Отправляя это, чтобы ответить, и объясните, почему:
Измени свой sql
объявление переменной должно быть:
sql = "SELECT TOP 1 * FROM [delayed] ORDER BY [ID] ASC"
ORDER BY - это предложение в T-SQL, и поэтому ему не нужны круглые скобки для определения порядка операций. Квадратные скобки можно использовать для окружения определенных объектов в SQL Server, чтобы разрешить использование зарезервированных слов (например, если у вас есть столбец с именем, например, [file]), или определенных символов, таких как дефис (база данных с именем [your-db). ]).
Это сработало для меня. когда я дал разрешение на обновление.