2016-06-06 3 views
0

Teradata에서 두 개의 다른 테이블에서 다음과 같은 조인을 할 때 매우 이상한 문제가 있습니다. table_A와 table_B 사이에 공통 값이 없음을 나타내는 결과를 리턴하지 않습니다. 나는 다음과 같은 두 개의 쿼리를 실행할 때>Teradata에서 조인과 관련된 문제

0 rows returned 

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

<는 그러나, 나는 두 테이블의 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의 모든 열에 대한 데이터 형식이 null

+0

'ON trim (a.id) = trim (b.id);'시도해보십시오. 거기에 흰 공백이 들지 않도록 할 수 있습니까? 또한, 이러한 필드에 대한 데이터 형식이 NULL이라고? 나는 당신이 NULL 데이터 타입을 가질 수 있다고 생각하지 않는다. 'id' 필드에 대해 Char() 또는 VARCHAR()입니까? – JNevill

+0

그리고 개별 쿼리에 의해 반환되는 것은 무엇입니까? ID의 데이터 유형은 무엇입니까? – dnoeth

+0

FULL OUTER JOIN으로 전환하면 반환되는 내용은 무엇입니까? – dnoeth

답변

0

당신이 아래의 방법을 사용해 볼 수 있습니다 :

ON trim(UPPER(table_A.id)) = trim(UPPER(table_B.id))