> 데이터 베이스 > MySQL 튜토리얼 > SQL Server에서 NULL = NULL이 False를 반환하는 이유는 무엇입니까?

SQL Server에서 NULL = NULL이 False를 반환하는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-20 23:18:10
원래의
449명이 탐색했습니다.

Why Does NULL = NULL Return False in SQL Server?

SQL Server에서 NULL = NULL이 False인 이유 이해

SQL Server에서 WHERE와 같은 nullParam = NULL 절 조건은 false로 평가됩니다. NULL는 종종 누락된 데이터를 의미하므로 이는 직관에 어긋나는 것처럼 보일 수 있습니다. 핵심은 NULL.

에 대한 SQL Server의 해석을 이해하는 것입니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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