집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 NULL = NULL이 False를 반환하는 이유는 무엇입니까?
SQL Server에서 NULL = NULL이 False인 이유 이해
SQL Server에서 WHERE
와 같은 nullParam = NULL
절 조건은 false로 평가됩니다. NULL
는 종종 누락된 데이터를 의미하므로 이는 직관에 어긋나는 것처럼 보일 수 있습니다. 핵심은 NULL
.
NULL
은 단순히 누락된 데이터를 나타내는 것이 아닙니다. 알 수 없거나 존재하지 않는 값을 나타냅니다. 따라서 두 NULL
값을 비교하는 것은 본질적으로 불확실합니다. 두 개의 미지수가 같은지 아니면 다른지 확실히 말할 수는 없습니다. 이러한 불확실성으로 인해 잘못된 평가가 발생합니다.
이는 ANSI SQL-92 표준과 일치합니다. 기본적으로 SQL Server는 ANSI_NULLS ON
으로 작동하여 이 동작을 적용합니다. 그러나 ANSI_NULLS OFF
을 설정하면 비교 결과가 true로 변경됩니다.
다음 예를 고려해보세요.
<code class="language-sql">SET ANSI_NULLS OFF; IF NULL = NULL PRINT 'true'; ELSE PRINT 'false'; SET ANSI_NULLS ON; IF NULL = NULL PRINT 'true'; ELSE PRINT 'false';</code>
ANSI_NULLS OFF
을 사용하면 'true'가 출력됩니다. ANSI_NULLS ON
(기본값)을 사용하면 출력은 'false'입니다. 이는 이 설정이 SQL Server의 NULL
비교 처리를 제어하는 방법을 보여줍니다. IS NULL
을 사용하는 것이 Null 값을 확인하는 올바른 접근 방식입니다.
위 내용은 SQL Server에서 NULL = NULL이 False를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!