2013-11-26 2 views
0

소스 코드가 여기에 도움이 될지 모르겠지만 ... 약 70 개의 행 이후 모든 열이 "Null ". 내 쿼리는 다음과 같습니다.SQL에서 "Null"을 반환하는 경우

SELECT 
P_DATA.MATERIALID, 
T_GROUP_PROPERTIES.PROPERTYGROUPID, 
T_GROUP_PROPERTIES.PROPERTYTYPEID, 
T_GROUP_PROPERTIES.PROPERTYTYPEDESCRIPTION 

FROM 
P_DATA 

LEFT OUTER JOIN TEMPLATE_GROUP_PROPERTIES 
ON (P_DATA.MATERIALID = T_GROUP_PROPERTIES.PROPERTYGROUPID) 
OR (P_DATA.MATERIALID = T_GROUP_PROPERTIES.PROPERTYTYPEID) 
OR (CAST(P_DATA.MATERIALID AS CHAR(2000)) = T_GROUP_PROPERTIES.PROPERTYTYPEDESCRIPTION) 
+2

NULL을 제거하는 가입. –

+0

@GordonLinoff 그게 문제지만,'p_data' 테이블에는 null 값이 없습니다. 단지 SQL 쿼리에서 리턴됩니다. – bbesase

답변

2

여분의 NULL을 제공하는 외부 조인입니다. ALL P_DATA의 행은 TEMPLATE_GROUP_PROPERTIES에 일치하는 행이 없더라도 결과에 표시됩니다. 쿼리는 조인 된 테이블에 일치하는 데이터가 없음을 나타 내기 위해 출력에 NULL을 생성합니다. 변경 LEFT OUTER은 INNER에 가입

는 테이블,`p_data`는`NULL` 값으로 가득 하나 개 이상의 행이 있기 때문에