programing

IS NULL과 =SDD 사이에 차이가 있습니까?

padding 2023. 7. 12. 22:19
반응형

IS NULL과 =SDD 사이에 차이가 있습니까?

선택 쿼리에서 IS NULL과 = DICOM이 서로 다른 결과를 내고 있다는 사실에 놀랐습니다.그들 사이의 차이점은 무엇입니까?무엇을 사용할 때.당신이 저에게 자세히 설명해 주시면 감사하겠습니다.

= NULL항상unknown(이것은 3가지 상태 논리의 일부입니다), 하지만.WHERE절은 그것을 다음과 같이 취급합니다.false결과 집합에서 드롭됩니다.그러니깐NULL사용해야 합니다.IS NULL

이유는 다음과 같습니다.SQL Server에서 NULL = NULL이 false로 평가되는 이유는 무엇입니까?

기존 답변에 추가하려면 "= NULL"을 사용할 때 ANSI_NULL이 설정되어 있는지 여부에 따라 달라집니다.

-- This will print TRUE
SET ANSI_NULLS OFF;
IF NULL = NULL
    PRINT 'TRUE'
ELSE
    PRINT 'FALSE'

-- This will print FALSE
SET ANSI_NULLS ON;
IF NULL = NULL
    PRINT 'TRUE'
ELSE
    PRINT 'FALSE'

사이에는 차이가 있습니다IS NULL그리고.= NULL이는 SQL의 세 가지 가치 논리 때문입니다.

https://en.wikipedia.org/wiki/Null_%28SQL%29#Three-valued_logic_.283VL.29

관련 단락의 발췌:

과제들

Null은 연관된 3VL(3VL) 논리, SQL 조인에 사용하기 위한 특수 요구 사항, 집계 함수 및 SQL 그룹 연산자에 의해 요구되는 특수 처리 때문에 논란의 초점이 되고 논쟁의 원인이 되었습니다.컴퓨터 과학 교수 론 반 데어 메이든은 다양한 문제를 요약했습니다: "SQL 표준의 불일치는 SQL의 null 처리에 직관적인 논리적 의미론을 부여하는 것이 불가능하다는 것을 의미합니다."이러한 문제를 해결하기 위해 다양한 제안이 제기되었지만, 대안의 복잡성으로 인해 광범위한 채택이 불가능했습니다.

언급URL : https://stackoverflow.com/questions/3777230/is-there-any-difference-between-is-null-and-null

반응형