Правило № 1 - Прогресс не является SQL. Чем больше вы пытаетесь заставить его действовать как SQL, тем вам будет неудобно.
Существует интерфейс SQL-92. Естественно, это мало поддерживает синтаксис, специфичный для Microsoft или Oracle. «Совершенно нормально для MS SQL Server» не является гарантией того, что Progress будет считать это нормальным.
В двигателе 4GL встроен более старый SQL-89. Это даже менее вероятно, будет вести себя как MS SQL.
Конечно, многое зависит от того, какой из этих двигателей вы используете, и с какой версией Progress вы работаете.
Сказав это - у вас нет имени таблицы. Я просто парень Прогресса, и, возможно, это какая-то причудливая магия MS SQL или фрагмент кода из-за чего-то более интересного, но для меня это похоже на проблему. Я бы кодировал что-то более похожее:
SELECT name FROM customer WHERE id = 1
Я попробовал его с известным именем таблицы и получил ту же синтаксическую ошибку. Обновленный вопрос, а также чтобы отразить это. На этом этапе я предполагаю, что для этого не существует эквивалентного способа Progress и, следовательно, синтаксической ошибки. Это обычная вещь, когда вы пытаетесь жестко закодировать значение как часть оператора select. Полезно, когда вы просто хотите проверить подключение к БД или таблице, не зная, что такое столбцы/таблицы. Как проверка здоровья. – akousmata
Как я уже сказал, я парень прогресса, а не парень SQL, но ваш синтаксис выглядит как-то испорченный ко мне. По крайней мере, с точки зрения стандартного SQL. Где твой ГДЕ? Почему вы хотите, чтобы id = 1 был непосредственно после SELECT? Является ли ID символьным полем? (Вы указали «1») Используете ли вы двигатель 4GL или двигатель SQL-92? Каков текст сообщения об ошибке? –
Что означает «жесткий код значения» и как это концептуально отличается от WHERE ID = 1? –