> 데이터 베이스 > MySQL 튜토리얼 > SQL에서 Null 허용 열과의 부등식 비교에 `A B`가 충분한 이유는 무엇입니까?

SQL에서 Null 허용 열과의 부등식 비교에 `A B`가 충분한 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2025-01-03 04:05:38
원래의
680명이 탐색했습니다.

Why Does `A  B` Suffice for Inequality Comparisons with Nullable Columns in SQL?

Null 불평등 역설 해결

SQL에서 두 개의 Null 허용 열 간의 동일성을 테스트하려면 두 열이 모두 NULL인 경우를 처리하기 위한 추가 검사가 필요합니다. 알 수 없는 값을 나타내는 NULL은 다른 NULL과 직접 비교할 수 없기 때문입니다. 그러나 부등식을 테스트할 때는 더 간단한 접근 방식을 사용할 수 있습니다.

Null 허용 열의 부등식

처음에는 Null 허용 열 간의 부등식을 테스트하려면 복잡한 작업이 필요하다고 가정했습니다. 조건:

WHERE ((A <> B) OR (A IS NOT NULL AND B IS NULL) OR (A IS NULL AND B IS NOT NULL))
로그인 후 복사

그러나 Informix와 같은 많은 SQL 구현에서는 11.5에서는 더 간단한 조건으로 충분합니다.

WHERE (A <> B)
로그인 후 복사

동작 이해

이 동작은 NULL이 알 수 없는 값으로 처리되는 삼항 논리에서 발생합니다. 다음 경우를 고려하십시오.

  • A와 B가 모두 알려진 경우(NULL이 아님) 부등식 테스트는 간단합니다.
  • A 또는 B 중 하나가 NULL인 경우 결과는 다음과 같습니다. 불확정. 삼항 논리에서 알 수 없는 값은 자신을 포함한 다른 값과 동일하지 않습니다. 따라서 표현식 (A = B)는 피연산자 중 하나가 NULL이면 알 수 없음을 반환합니다.
  • A와 B가 모두 NULL이면 부등식 테스트도 알 수 없습니다. NULL은 자신과 같지도 않고 같지도 않기 때문입니다.

간소화된 부등식 조건

따라서 단순화된 (A <> B) 조건은 NULL 값을 직접 비교하려고 시도하지 않기 때문에 올바르게 작동합니다. 대신, 알 수 없는 값은 어떤 것과도 같지 않다는 삼항 논리 원리에 의존합니다.

결론

null 허용 열 간의 불평등을 테스트할 때는 다음을 사용하는 것으로 충분합니다. 단순 조건(AB). NULL은 알 수 없는 값이므로 자신을 포함한 다른 값과 직접 비교할 수 없기 때문입니다. NULL을 알 수 없는 것으로 간주하는 삼항 논리 접근 방식을 사용하면 표현이 단순화되고 정확한 결과가 보장됩니다.

위 내용은 SQL에서 Null 허용 열과의 부등식 비교에 `A B`가 충분한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿