복붙노트

[SQL] IS NULL = NULL과의 차이가 있습니까

SQL

IS NULL = NULL과의 차이가 있습니까

나는 IS NULL과 = NULL은 선택 쿼리에서 다른 결과를 산출하는 것을보고 놀라게하고있다. 그들 사이의 차이점은 무엇입니까? 때 무엇을 사용합니다. 당신이 자세히 설명해 수 있다면 다행 일 것이다.

해결법

  1. ==============================

    1.= NULL (이 3 주 논리의 조각)는 항상 알 수 있지만, 절 거짓으로 취급을하고 결과 집합에서 떨어진다. 그래서 NULL 당신은 IS NULL을 사용한다

    = NULL (이 3 주 논리의 조각)는 항상 알 수 있지만, 절 거짓으로 취급을하고 결과 집합에서 떨어진다. 그래서 NULL 당신은 IS NULL을 사용한다

    이유는 여기에 설명되어 있습니다 : 왜 NULL = NULL 평가 않습니다 false로 SQL 서버에

  2. ==============================

    2.기존 답변에 추가하려면, 그것은 "= NULL"을 사용할 때,에 ANSI_NULLS 여부가 있는지 여부 따라 달라집니다.

    기존 답변에 추가하려면, 그것은 "= NULL"을 사용할 때,에 ANSI_NULLS 여부가 있는지 여부 따라 달라집니다.

    -- 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'
    
  3. ==============================

    3.IS NULL 차이가 있고 = NULL이 때문에 SQL의 3 논리 값이다 :

    IS NULL 차이가 있고 = NULL이 때문에 SQL의 3 논리 값이다 :

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

    관련 단락의 추출 :

  4. from https://stackoverflow.com/questions/3777230/is-there-any-difference-between-is-null-and-null by cc-by-sa and MIT license