Одна из моих колонок называется from
. Я не могу изменить имя, потому что я не сделал это. Могу ли я сделать что-то подобное SELECT from FROM TableName
или есть специальный синтаксис, чтобы избежать путаницы в SQL Server?
sql
sql-server
Натан Х
источник
источник
SELECT "from" FROM TableName
, красиво и портативно!Ответы:
Оберните имя столбца в скобки, например,
from
становится [из].Также можно использовать следующее (полезно при запросе нескольких таблиц):
источник
select TableName.from from TableName;
PS: Это работает в MySQLЕсли это было в PostgreSQL, используйте двойные кавычки вокруг имени, например:
Примечание. Внутри PostgreSQL автоматически преобразует все команды и параметры без кавычек в нижний регистр. Это приводит к тому, что команды и идентификаторы не чувствительны к регистру. ВЫБРАТЬ * из ТАБЛИЦЫ; интерпретируется как select * from table; , Однако параметры внутри двойных кавычек используются как есть, и поэтому учитывают регистр: select * from "table"; и выберите * из «Таблицы»; получает результат из двух разных таблиц.
источник
Пока вы это делаете - создайте псевдоним как-то еще (или, что еще лучше, используйте представление или SP и не используйте старый метод прямого доступа).
источник
Это два способа сделать это:
источник
Ваш вопрос, кажется, хорошо ответил здесь, но я просто хочу добавить еще один комментарий к этой теме.
Те, кто проектирует базу данных, должны хорошо знать зарезервированные ключевые слова и избегать их использования. Если вы обнаружите, что кто-то использует его, сообщите ему об этом (вежливо). Ключевым словом здесь является зарезервированное слово.
Больше информации:
и
источник
Если вы используете SQL Server, вы можете просто заключить квадратные скобки в столбец или имя таблицы.
источник
В Apache Drill используйте обратные кавычки:
источник
Я тоже сталкивался с этой проблемой. И решение для этого состоит в том, чтобы поместить [Column_Name] как это в запросе.
Так что это будет работать на отлично.
источник
Привет, я работаю на системах Teradata, которые полностью совместимы с ANSI. Используйте двойные кавычки "", чтобы назвать такие столбцы.
Например
type
, зарезервированное ключевое слово SQL, и при использовании в кавычках,type
обрабатывается как указанное пользователем имя.Смотрите пример кода ниже:
источник
Вы можете поместить название столбца в скобки, например:
Или
Положите в таблицу времен, затем используйте, как вам нравится.
Пример:
Здесь я просто предполагаю, что your_tablename содержит только один столбец (т.е. from).
источник
[from]
это единственный столбец,your_tablename
который получил."[Total]"
? Или, может быть, есть способ избежать этого, что-то вроде[\[Total\]]
?Я столкнулся с той же проблемой при попытке обновить столбец, имя которого было ключевым словом . Решение выше не помогло мне. Я решил это, просто указав имя таблицы следующим образом:
источник
Следующее будет работать отлично:
источник
В MySQL, в отличие от использования обратных кавычек (`), вы можете использовать пользовательский интерфейс для изменения имен столбцов. Щелкните правой кнопкой мыши таблицу> Изменить таблицу> Изменить имя столбца, содержащее ключевое слово sql> Фиксация.
Как примечание, выше не работает в MySQL
источник
Судя по ответам здесь и собственному опыту. Единственный приемлемый ответ, если вы планируете быть переносимым, это не использовать ключевые слова SQL для таблицы, столбца или других имен.
Все эти ответы работают в разных базах данных, но, очевидно, многие из них не поддерживают решение ANSI.
источник