2012-03-27 2 views
0

열에 NULL이 있어야하는 대신 0이 있어야합니다. SQL Server - 업데이트 쿼리에서 ISNULL이 작동하지 않습니다.

다음과 같은 두 개의 테이블을 감안할 때 :

TABLE1 
ClientID  OrderCount 
1    NULL 
2    NULL 
3    NULL 
4    NULL 


Table2 
ClientID  OrderCount 
1    2 
3    4 
4    6 

참고 : 두 테이블의 ordercount가 열 INT 데이터 타입이다.

ClientID  OrderCount 
1    2 
2    NULL 
3    4 
4    6 

그래서 나는 나 자신에게 생각했다 - "분명히, 내가 NULLIF하지 ISNULL을 사용한다", 그래서 나는 그들을 반전 : 나는 표를 보면

UPDATE TABLE1 
SET OrderCount = ISNULL(TABLE2.OrderCount,0) 
FROM TABLE1 
INNER JOIN TABLE2 ON TABLE2.ClientID = TABLE1.CLIENTID 

, 나는이 참조하십시오. 같은 결과.

내가 뭘 잘못하고 있니? 열에 NULL 대신 0을 얻으려면 어떻게해야합니까?

답변

6

INNER JOIN 대신 LEFT JOIN이 필요합니다. 일치하는 ClientID이없는 레코드는 쿼리에서 건드리지 않습니다.

+0

감사를 가입 LEFT로 교체 포함, 그래서 당신은 표 2에서 클라이언트 ID 2가 없습니다. 그것으로 해결되었습니다. – mikebmassey

0

아마도 조인이 행을 필터링하고있을 것입니다. 당신이 INNER를 사용하는

2

은 가입하지만 실 거예요 설정 당신의 결과는 2와 라인이

관련 문제