Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ошибка 1064 / 9 сообщений из 9, страница 1 из 1
15.12.2013, 20:05:18
    #38501532
voevodin74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1064
Здравствуйте. Подскажите пожалуйста делаю следующий запрос к базе данных

CREATE VIEW Detal_Ekonomist as
SELECT name, cast(price as float)/1000 as price, colour, cast(weight as float)/1000 as weight,
case when price < 1000
then 'Deshevaya' else 'Dorogaya'
end as Deshevizna
FROM Detal
ORDER BY price DESC, name, color, weight;



Получаю ошибку #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'float)/1000 as price, colour, cast(weight as float)/1000 as weight, case when' at line 2

Как исправить эту проблему? Больше часа ищу ответ и не могу найти:(
...
Рейтинг: 0 / 0
15.12.2013, 21:46:17
    #38501580
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1064
Если желаешь сылаться на вычисленные поля - оберни всё в запрос, и в нём ссылайся.
Или повторяй ещё раз вычислимое выражение.
...
Рейтинг: 0 / 0
15.12.2013, 21:48:20
    #38501582
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1064
А, да... ещё вот тут почитай:
http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast
...
Рейтинг: 0 / 0
15.12.2013, 22:40:22
    #38501609
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1064
AkinaЕсли желаешь сылаться на вычисленные поля - оберни всё в запрос, и в нём ссылайся.
Или повторяй ещё раз вычислимое выражение.С этим-то проблем нет, в ORDER BY можно ссылаться на алиасы выражений из секции SELECT.

А вот cast(... as float) не бывает.

И называть поля и алиасы одинаково не стоит, путаница гарантирована. Я, например, сходу не возьмусь сказать какой именно price будет взят в case - поле или алиас?
...
Рейтинг: 0 / 0
15.12.2013, 23:00:58
    #38501618
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1064
miksoftС этим-то проблем нет, в ORDER BY можно ссылаться на алиасы выражений из секции SELECT.
Это - большая проблема. Правда, не синтаксическая, а с логикой у автора запроса. И её надо на самом деле калёным железом. А ну как в боевой проект такое попадёт?

miksoft Я, например, сходу не возьмусь сказать какой именно price будет взят в case - поле или алиас?
Тем более в order by - кстати, там скорее будет сортировка по полю исходной таблицы, а не по алиасу выражения.
...
Рейтинг: 0 / 0
15.12.2013, 23:25:35
    #38501633
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1064
AkinamiksoftС этим-то проблем нет, в ORDER BY можно ссылаться на алиасы выражений из секции SELECT.
Это - большая проблема. Правда, не синтаксическая, а с логикой у автора запроса. И её надо на самом деле калёным железом. А ну как в боевой проект такое попадёт?Если сделать алиас выражения отличным от имен других объектов, то не вижу проблемы в том, чтобы в ORDER BY сослаться на этот алиас.

Akinamiksoft Я, например, сходу не возьмусь сказать какой именно price будет взят в case - поле или алиас?Тем более в order by - кстати, там скорее будет сортировка по полю исходной таблицы, а не по алиасу выражения.Кстати, наоборот.
http://dev.mysql.com/doc/refman/5.5/en/select.html MySQL resolves unqualified column or alias references in ORDER BY clauses by searching in the select_expr values, then in the columns of the tables in the FROM clause. For GROUP BY or HAVING clauses, it searches the FROM clause before searching in the select_expr values. (For GROUP BY and HAVING, this differs from the pre-MySQL 5.0 behavior that used the same rules as for ORDER BY.)
...
Рейтинг: 0 / 0
16.12.2013, 08:40:43
    #38501759
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1064
Мда, чем дальше в лес - тем толще партизаны... интересно, куда всё-таки оракл поведёт масю - к стандарту или от стандарта...
...
Рейтинг: 0 / 0
16.12.2013, 10:34:58
    #38501835
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1064
Akina
Мда, чем дальше в лес - тем толще партизаны... интересно, куда всё-таки оракл поведёт масю - к стандарту или от стандарта...
Оракл в данном конкретном вопросе не виноват, версия 5.0 еще без него выходила, насколько я помню. И даже, наверное, еще не Сан.
...
Рейтинг: 0 / 0
16.12.2013, 10:55:34
    #38501857
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1064
miksoftОракл в данном конкретном вопросе не виноват, версия 5.0 еще без него выходила, насколько я помню.А его никто и не обвиняет... мне любопытственно, что же дальше будет.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ошибка 1064 / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]