(', CROSS, FULL, INNER, JOIN, LEFT, NATURAL, ON, RIGHT или USING ожидаются, получил' WITH ' - PullRequest
0 голосов
/ 30 августа 2018

У меня SQL-запрос

Вот часть кода

    LEFT JOIN       dbo.contacts_client_organization cog WITH(NOLOCK)
ON              cog.clientid = be.clientid

После cog у меня ошибка

'(' Ожидается КРОСС, ПОЛНЫЙ, ВНУТРЕННИЙ, ВСТУПЛЕННЫЙ, ЛЕВЫЙ, ЕСТЕСТВЕННЫЙ, ВКЛ, ПРАВО или ИСПОЛЬЗОВАНИЕ, получил 'С

Я хочу переписать запрос, чтобы использовать его в Amazon Redshift

Вот полный запрос

код запроса

Как я могу это решить?

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Подсказка nolock не нужна в Redshift (или Postgres).

Из-за своей базовой архитектуры читатели никогда не блокируют писателей, а писатели никогда не блокируют читателей, поэтому подсказка о включении неблокирующего чтения в SQL Server не требуется для Redshift и Postgres

Просто удалите WITH(NOLOCK), в любом случае, нет эквивалента.

0 голосов
/ 30 августа 2018

В MSSQL ваш запрос будет работать нормально. Но для MYSQL, если вам нужна изоляция транзакции, попробуйте, как показано ниже:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
select ...

 LEFT JOIN       dbo.contacts_client_organization cog WITH(NOLOCK)
ON              cog.clientid = be.clientid;
COMMIT ;
...