MySQL Error Code 1166. Неверное имя столбца - PullRequest
6 голосов
/ 29 марта 2012

Когда я пытаюсь запустить подпрограмму, я получаю следующую ошибку:

Код ошибки: 1166. Неправильное название столбца 'Школа. Название школы` = регистр когда School`Web School Name` имеет значение null, тогда School `School Name` ELS'

Я дважды проверил имя столбца, и на самом деле School.School Name. Здесь нет ни начальных, ни конечных пробелов. Вот начало процедуры, на которую ссылается ошибка:

CREATE temporary TABLE tt_Step1
SELECT DISTINCT State.Code, State.Name, 
School.`School Name` = case 
    when School.`Web School Name` is null then School.`School Name`
    else School.`Web School Name`
    end,
School.`School ID` 
-- Into tt_Step1
FROM State LEFT JOIN School ON State.Code = School.State 
Where (School.`School ID` <> ...

Я недавно преобразовал этот код из MSSQL в MySQL, поэтому я мог что-то пропустить, но не могу найти никаких ошибок. Исходный запрос MSSQL прекрасно работает в SQL Server Management Studio, но его преобразованная версия в MySQL - нет.

Ответы [ 4 ]

4 голосов
/ 29 марта 2012

Дайте этому шанс:

CREATE temporary TABLE tt_Step1
SELECT DISTINCT State.Code, State.Name, 
coalesce(School.`Web School Name`, School.`School Name`),
School.`School ID` 
-- Into tt_Step1
FROM State LEFT JOIN School ON State.Code = School.State 
Where (School.`School ID` <> ...
2 голосов
/ 20 октября 2016

В моем случае это было вызвано невидимым дополнительным пробелом после имени столбца. Я написал promotion-ids вместо promotion-id.

2 голосов
/ 29 марта 2012

У вас есть пара проблем.

  1. Нельзя создать псевдоним столбца с именем, состоящим из нескольких частей, например School.School Name.
  2. Псевдоним в MySql выполняется с помощью blah as ColumnNameне ColumnName = blah.
0 голосов
/ 13 августа 2018

У меня была похожая проблема. Моя проблема была решена путем добавления имени столбца в инструкцию case.

Пример:

Case

  when val <.5 then "low"

  when val >1 then "high"

end as valTest

без as valTest Я бы получил ошибку 1166.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...