ВЫБЕРИТЕ, где нет в другой таблице с COLLATE - PullRequest
0 голосов
/ 06 августа 2020

У меня проблема с оператором сервера SQL.

У меня 2 таблицы

T1

1
2

T2

1
2

Я хочу выбрать из T1, где T1.2 отсутствует в T2.2. Я пробовал этот оператор, но он не работает, появляется сообщение об ошибке

Неправильный синтаксис рядом с ключевым словом Collate

SELECT * 
FROM T1 
WHERE T1.2 NOT IN (SELECT T2.2 FROM T2) COLLATE sql_latin1_general_cp1_ci_as

PS: Я использовал collate, потому что без него У меня другая ошибка

Не удается разрешить конфликт сопоставления между arabic_ci_as и sql_latin1_general_cp1_ci_as

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Когда вы пишете T2.2 2, здесь должно быть имя столбца, синтаксис tableName.coloumnName не уверен, что вы имеете в виду.

0 голосов
/ 06 августа 2020

Обычно значения одного сопоставления, а не целые запросы. Не уверен, поскольку я давно не работал с ms sql, но я думаю, что это должно сработать для вас. Я Сопоставил оба конца, может быть хорошей идеей, если вы когда-нибудь измените сопоставление любой из таблиц, не думайте, что вы действительно хотите иметь два разных сопоставления в одной схеме, если для этого нет очень веской причины.

SELECT * from T1 where T1.2 COLLATE DATABASE_DEFAULT not in 
(select T2.2 COLLATE DATABASE_DEFAULT from T2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...