SQL Server - Выбрать запрос - Внутреннее соединение - Сообщение об ошибке: не удается разрешить конфликт сортировки - PullRequest
0 голосов
/ 02 апреля 2019

Я выполняю этот запрос в SQL Server:

SELECT *
FROM [PBS].[dbo].[CAT_Empleados]
INNER JOIN [AccessControl].[dbo].[USERINFO] ON [PBS].[dbo].[CAT_Empleados].[NumeroReloj] = [AccessControl].[dbo].[USERINFO].[Badgenumber]

Как видите, есть 2 базы данных, 2 таблицы и 2 разных столбца.

В таблице CAT_Empleados, У меня есть все сотрудники (около 3000) - здесь столбец № сотрудника равен NumeroReloj.

А в таблице USERINFO у меня около 250 сотрудников - здесь столбец № сотрудника равен Badgenumber.

Я пытаюсь найти всех сотрудников, которые находятся в USERINFO, а не в CAT_EMPLEADOS (Employee #).

Но я получаю эту ошибкукогда я запускаю запрос:

Сообщение 468, Уровень 16, Состояние 9, Строка 4
Невозможно разрешить конфликт сопоставления между "Chinese_PRC_CI_AS" и "SQL_Latin1_General_CP1_CI_AS" в операции, равной операции.

Надеюсь, вы сможете мне помочь.

Ответы [ 2 ]

2 голосов
/ 02 апреля 2019

Вы также можете использовать collate database_default для разрешения конфликта.

твой код будет таким

SELECT *
FROM [PBS].[dbo].[CAT_Empleados]
INNER JOIN [AccessControl].[dbo].[USERINFO]
ON [PBS].[dbo].[CAT_Empleados].[NumeroReloj] = [AccessControl].[dbo].[USERINFO].[Badgenumber] collate database_default
2 голосов
/ 02 апреля 2019

вы всегда можете использовать COLLATE в конце вашего SELECT заявления

[PBS].[dbo].[CAT_Empleados].[NumeroReloj] = [AccessControl].[dbo].[USERINFO].[Badgenumber] COLLATE Chinese_PRC_CI_AS   (OR THE OTHER ONE)
...