총 수를 반환하지 : i.BROJ
는 동일 조건SQL NOT 함수에서 테이블 i1450에 예상되는 결과를 기록
총 수는 다른 테이블에 REFERENCA
을 필드에 :
WHERE
절에 NOT IN
을 사용하면 마지막 두 결과 (64 임)의 차이를 반환하지 않아야합니까? 열
모두 varchar
유형입니다.
총 수를 반환하지 : i.BROJ
는 동일 조건SQL NOT 함수에서 테이블 i1450에 예상되는 결과를 기록
총 수는 다른 테이블에 REFERENCA
을 필드에 :
WHERE
절에 NOT IN
을 사용하면 마지막 두 결과 (64 임)의 차이를 반환하지 않아야합니까? 열
모두 varchar
유형입니다.
당신이 FpsPmtOrderRQ
테이블에서 REFERENCA
열에서 어떤 NULL
값이있는 경우 다음 NOT IN
절은 예상대로 작동하지 않습니다 - (the reason why)
해결책은에 의해 반환 된 결과에서 NULL
값을 제거하는 것입니다 subselect.
SELECT COUNT(*)
FROM i1450 j
WHERE i.BROJ NOT IN (SELECT REFERENCA FROM FpsPmtOrderRQ WHERE REFERENCA IS NOT NULL)
값이 'NULL'인 'BROJ'의 첫 번째 테이블에서 레코드를 집계합니까? – nikname
하위 쿼리가 null 값을 반환하면 IN
이 true가 아닙니다. 대신 NOT EXISTS
을 수행하십시오.
select count(*)
from i1450 i
where not exists (select 1 from FpsPmtOrderRQ f
where i.broj = f.REFERENCA)
null을 처리하기 위해 필드를 병합해야한다고 생각합니다.
where coalesce(I.BROJ,'n/a') not in (select coalesce(REFERENCA,'')
또는 이와 유사한, 당신은 널 (null)을 제외하고, 적절한 수를 반환 : 당신이 이렇게함으로써 0 을받을 이유는 아마이다.
단순히 null 행을 건너 뛰는 것이 좋습니다. (라두의 대답처럼) – jarlh
모든 REFERENCA null 값? – jarlh