where 절의 작은 부분을 제외하고는 잘 작동하는 PL/SQL의 긴 부분이 있습니다.Oracle의 NOT IN 및 NOT LIKE 문에서 null을 처리하는 방법은 무엇입니까?
필드가 where 절 검사가 null이기 때문에 하나의 행이 반환되어야하지만 조건을 충족 시키더라도 행이 반환되지 않을 것으로 예상됩니다.
나는 여기에 아주 좋은 메모를 읽어http://jonathanlewis.wordpress.com/2007/02/25/not-in/
그것은 널 (null)이 문에서 NOT에 미치는 영향을 설명하고 나는 그것뿐만 아니라 좋아하지에 대해 동일합니다 가정.
내가 찾을 수 없었던 것은 필자가 필적 할만한 대체품입니다. 어떻게 든 이것을 IN과 LIKE로 전환하거나 NULL이면 행을 반환 할 수있는 무언가를 제공해야합니까?
다음은 간단한 코드입니다.
내 경우에는 행이 Col_One과 Col_Two에서 모두 null이됩니다.
도움을 주시면 대단히 감사하겠습니다.
감사합니다.
이 완벽했다. 빠른 응답에 감사드립니다. 사실 NuLl을 값으로 삽입 할 수 있다고 생각했지만 비교를 위해서만 사용되었습니다. 다시 한번 감사드립니다. – dee
이것은 일반적인 해결책이 아닙니다. 이 경우 우리는 'AString'이 'NuLl'이 될 수 없다는 것을 알고 있지만 실생활에서는 이것이 바운드 매개 변수가 될 것이며 클라이언트 응용 프로그램은 'NuLl'이 결코 전달되지 않는다는 것을 보장해야합니다. 명시 적으로 NULL을 테스트하고 "마법"값에 대한 의존성을 피하는 것이 좋습니다. –
@Branko, 좋은 의견, 당신 말이 맞아요, 그리고 아마도 당신의 솔루션은 아마도 첫 번째 null 체크에서 단락 될 수 있기 때문에 성능이 더 좋을 것입니다. – DCookie