Я пытаюсь соединить две таблицы на SQL сервере 2008.Регистрация не работает на двух одинаковых полях
select *
from TABLE1 a
left join TABLE2 b
on a.cont_id = b.cont_id
Тем не менее, не может подключиться любой из данных.
a.cont_id имеет NVARCHAR (255) тип и b.cont_id является VARCHAR (80). Использование CAST никак не помогло.
Как a.cont_id состоит только из числовых данных, сначала я использовал тип float и integer и прикладную функцию отбрасывания, но это ничего не решило.
Я проверил свои VARBINARY коды, используя следующий запрос
select cont_id, CAST(cont_id AS varbinary) AS BinaryCode
from Table1
where cont_id = '53126124'
select cont_id, CAST(cont_id AS varbinary) AS BinaryCode
from Table2
where cont_id = '53126124'
и я получил эти два результата
cont_id BinaryCode
53126124 0x4189551F60000000
cont_id BinaryCode
53126124 0x3533313236313234
еще одна информация - Таблица 1 импортируется из документа первенствовать, который был создан в соседняя страна (Чешская Республика).
Что касается исходных таблиц, вот пример, если это помогает.
cont_id C1 C2 C3
53126124 3 31 510
175553321 5 16 510
И
dt cont_id D1 D2
201610 53126124 0 0
201610 175553321 41 520
У вас есть какие-либо идеи, как бороться с этим?
Как они выглядят в их обычном формате? – sagi
Почему цифровые данные хранятся как varchars и nVarchars? –
Возможно, у вас есть пробелы? 'on trim (a.con_id) = trim (b.con_id)', если нет, то, возможно, других не отображаемых символов, вы можете попытаться сделать len на обоих для одного ID и посмотреть, возвращает ли len то же значение, моя догадка не. – xQbert