Эта ошибка SQL обычно означает, что где-то в запросе присутствует недопустимый синтаксис.
Некоторые распространенные примеры:
- Использование специфичного для базы данных SQL для неправильной базы данных (например, BigQuery поддерживает DATE_ADD, а Redshift поддерживает DATEADD)
- Опечатка в SQL (отсутствует запятая, слово с ошибкой и т.д.)
- Отсутствует предложение sql (пропущено из, присоединиться, выбрать и т. д.)
- Объект не существует в базе данных или недоступен из текущего запроса (например, ссылка на orders.id, когда в текущем запросе нет присоединенной таблицы заказов и т. д.)
В некоторых случаях в сообщении об ошибке базы данных могут отображаться дополнительные сведения о том, где возникла ошибка, что может помочь сузить область поиска.
Сообщение об ошибке
SQL ERROR: syntax error at or near
Исправление проблем
Как правило, это должен быть первый шаг к устранению любой синтаксической ошибки SQL в большом запросе: итеративно комментируйте блоки SQL, чтобы сузить область проблемы.
СОВЕТ: Чтобы упростить этот процесс, измените предложение group by, чтобы использовать ссылки на позиции,
например: group by 1,2,3,4,5 instead of group by orders.status, orders.date, to_char(...)...
а также разделите предложения where и have на несколько строк.
Так, например, скажем, у нас есть следующий запрос:
WITH cte AS (
select id, status, sales_amountfrom orders
)
select status, foo.date, sum(cte.sales_amount), count(*) from cte
join foo on cte.date = foo.date
group by status, foo.date
order by 3 desc
Мы могли бы начать с запуска только части CTE:
-- WITH cte AS (
select id, status, sales_amountfrom orders
-- )
-- select status, foo.date, sum(cte.sales_amount), count(*)
-- from cte
-- join foo on cte.date = foo.date
-- group by 1, 2
-- order by 3 desc
Затем удалите агрегаты и части, связанные с ними.
WITH cte AS (
select id, status, sales_amountfrom orders
)
select status, foo.date, -- sum(cte.sales_amount), count(*)
from cte
join foo on cte.date = foo.date
-- group by 1, 2
-- order by 3 desc
Итеративное удаление/добавление частей запроса до тех пор, пока не будет найден минимальный запрос, вызывающий ошибку.
-
-
Функции поиска и синтаксис . Если запрос достаточно мал или мы достаточно сузили область до 1, поищите в Google все функции, используемые в запросе, и убедитесь, что они существуют и используются правильно.
-
Убедитесь, что все объекты существуют . Убедитесь, что вы присоединили все таблицы, используемые в предложении select, where и have, и что эти таблицы существуют в базе данных. После того, как мы сузили список с 1, также проверьте, существует ли каждый столбец в указанной таблице.
-
Ошибка SQL error or missing database (near «<=»: syntax error) в java
вот участок кода в котором происходит такая проблема
| JavaВыделить код | ||
| ||
СУБД установлена mySQL 3.30.1
Если кто-то сейчас читает эта и у него такая же проблема, просто проверьте внимательно все строчки кода
вот решение
| JavaВыделить код | ||
| ||
Пробел был пропущен после Rabbits







