2016-06-06 2 views
0

У меня очень странная проблема, когда я делаю следующее соединение на двух разных таблицах в Teradata. Он не возвращает никаких результатов, что указывает на отсутствие общего значения между таблицей_А и таблицей_B.Проблема со входом в Teradata

SELECT 
* 
FROM 
table_A a JOIN table_B b ON a.id = b.id; 

<>

0 rows returned 

Однако, когда я бегу следующие два запроса, я получить результаты, доказывающие, что столбец ID в обеих таблицах имеет, по меньшей мере, один ряд с «Джон».

SELECT 
id 
FROM table_A 
WHERE 
id = 'John'; 

<>

1 row returned 

SELECT 
id 
FROM table_B 
WHERE 
id = 'John'; 

<>

1 row returned 

Тип данных для всех столбцов в TABLE_A и TABLE_B является нулевым

+0

Вы можете попробовать: 'ON trim (a.id) = trim (b.id);' чтобы гарантировать, что там нет какого-либо белого пространства? Кроме того, вы говорите, что тип данных NULL для этих полей? Я не верю, что у вас может быть тип данных NULL. Это Char() или VARCHAR() для полей 'id'? – JNevill

+0

И что возвращается отдельными запросами? Каков тип данных id? – dnoeth

+0

Что возвращается, когда вы переключаетесь на ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ? – dnoeth

ответ

0

Вы можете попробовать использовать ниже подход:

ON trim(UPPER(table_A.id)) = trim(UPPER(table_B.id)) 
Смежные вопросы