Чтобы быть идентификатором с разделителями, имя должно быть заключено в двойные кавычки, а не в одинарные. Итак, с показанной строкой подключения написание запроса, как показано ниже, должно работать (известные последние слова):
SELECT keycolumnA AS "Entity", datacol1, datacol2
FROM RandomlyNamedTable -- NB: Not present in original query!
WHERE keycolumnA IN ('ABC', 'DE f');
Протестировано в базе данных, содержащей таблицу под названием Elements (хранящую данные о таблице элементов):
SELECT Atomic_Number AS "Entity", Name AS Name, Symbol AS "Symbol"
FROM Elements -- NB: Not present in original query!
WHERE Symbol IN ('Fe', 'He');
Entity | name | Symbol
INTEGER | CHAR(20) | CHAR(3)
26 | Iron | Fe
2 | Helium | He
Обратите внимание, что имена «Сущность» и «Символ» пишутся с заглавной буквы, как вам нужно. Когда двойные кавычки были заменены одинарными, запрос не удался.
SELECT Atomic_Number AS 'Entity', Name AS Name, Symbol AS 'Symbol'
FROM Elements -- NB: Not present in original query!
WHERE Symbol IN ('Fe', 'He');
SQL -201: A syntax error has occurred.
Это было с установленным DELIMIDENT ... без установки DELIMIDENT, как одинарные, так и двойные кавычки вокруг «отображаемых меток» завершились ошибкой с синтаксической ошибкой.
Тестирование против IBM Informix Dynamic Server 11.70.FC2 в Mac OS X 10.7.5. (Программа была написана с использованием ESQL / C, но это не должно иметь значения.)
person
Jonathan Leffler
schedule
12.10.2012