"NOT IN" 조건에서는 Null 허용 하위 쿼리를 사용하면 안 됩니다.



하위 쿼리와 함께 NOT IN을 사용하는 WHERE 절 조건은 해당 하위 쿼리가 NULL을 반환하는 경우 예기치 않은 결과를 가져옵니다. 반면에 NOT EXISTS 하위 쿼리는 동일한 조건에서 안정적으로 작동합니다. 이 규칙은 NOT IN이 하위 쿼리와 함께 사용될 때 문제를 발생시킵니다. 규칙 엔진에 테이블 정의에 대한 정보가 없기 때문에 이 규칙은 선택한 열이 Null 허용 열인지 확인하지 않습니다. 열이 Null 허용 여부를 수동으로 검토하는 것은 개발자의 몫입니다. 나쁜 예: SELECT * FROM my_table WHERE my_column NOT IN (SELECT nullable_column FROM another_table) -- Noncompliant; "nullable_column" ..


원문링크 : "NOT IN" 조건에서는 Null 허용 하위 쿼리를 사용하면 안 됩니다.