집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 `NULL = NULL`이 False를 반환하는 이유는 무엇입니까(그리고 `ansi_nulls`는 이에 어떤 영향을 미칩니까)?
NULL = NULL
이 SQL Server에서 False를 반환하는 이유 이해
SQL Server에서 NULL
값을 처리하면 예상치 못한 결과가 발생하는 경우가 많습니다. =
연산자는 null 허용 열을 비교할 때 <code>false</code>을 반환합니다. NULL
은 알 수 없거나 누락된 값을 의미하기 때문입니다.
WHERE
와 같은 nullParam = NULL
절 조건은 항상 <code>false</code>으로 평가됩니다. 알 수 없는 두 양의 동일성을 확실히 확인하는 것이 불가능하기 때문입니다.
SQL-92 표준은 이 동작을 규정합니다. NULL = NULL
은 true도 false도 아닙니다. 정의되지 않았습니다.
ansi_nulls
설정의 영향
ansi_nulls
설정에 따라 동작이 크게 달라집니다. ansi_nulls
을 OFF
으로 설정하면 NULL = NULL
은 놀랍게도 <code>true</code>으로 평가됩니다. 이는 아래에 설명되어 있습니다.
코드 예:
<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
와 함께:
<code>true</code>
ansi_nulls ON
와 함께:
<code>false</code>
NULL 처리 모범 사례
이러한 가변성으로 인해 ansi_nulls
비교 작업을 수행할 때 NULL
설정을 알고 있는 것이 중요합니다. 모호함을 피하려면 IS NULL
값을 확인할 때 항상 IS NOT NULL
및 NULL
를 사용하세요. 이는 ansi_nulls
설정에 관계없이 일관되고 예측 가능한 동작을 보장합니다. 이는 안정적인 SQL 코드를 위해 권장되는 접근 방식입니다.
위 내용은 SQL Server에서 `NULL = NULL`이 False를 반환하는 이유는 무엇입니까(그리고 `ansi_nulls`는 이에 어떤 영향을 미칩니까)?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!