복붙노트

[SQL] 왜 SQL NULL에서 NULL과 일치하지 않을 수 있습니까?

SQL

왜 SQL NULL에서 NULL과 일치하지 않을 수 있습니까?

단순히이 개념에 나에게 실제 예를 말할 NULL은 NULL 캔 누구와도 일치 할 수없는 이유 NULL 발현 I 궁금해을 공부하는 동안 나는, SQL 개념에 새로운 해요?

해결법

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

    1.규칙 : 아니 심지어 NULL은 NULL과 동일 할 수있다.

    규칙 : 아니 심지어 NULL은 NULL과 동일 할 수있다.

    비 기술적 관점

    당신은 두 여자를 요구하는 경우에, 얼마나 오래된 그들이있다? 당신이 당신의 질문에 대답을 거부하도록 듣는 될 수있다, 두 여자는 나이 당신에게 NULL을주는이 모두 비슷한 연령을 의미하지 않는다. 그래서 아무것도 널 (null)와 동일 할 수있다.

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

    2.NULL은 값의 부재를 나타낸다. SQL의 디자이너는 것을 감지했다 결정, A (있는 우리가 그 가치를 모르는)와 B (있는 우리가 그 가치를 모르는) 같은지 여부를 물었을 때, 대답은 알 수 있어야합니다 - 그들은 동일한 수 있습니다 그들은하지 않을 수 있습니다. 우리는 어느 쪽이든 결정하는 충분한 정보를 가지고 있지 않습니다.

    NULL은 값의 부재를 나타낸다. SQL의 디자이너는 것을 감지했다 결정, A (있는 우리가 그 가치를 모르는)와 B (있는 우리가 그 가치를 모르는) 같은지 여부를 물었을 때, 대답은 알 수 있어야합니다 - 그들은 동일한 수 있습니다 그들은하지 않을 수 있습니다. 우리는 어느 쪽이든 결정하는 충분한 정보를 가지고 있지 않습니다.

    당신은 세 가지 가치 논리를 읽을 수도 있습니다 - SQL의 모든 비교 가능한 결과를, FALSE 및 UNKNOWN TRUE입니다 (동의어로 MySQL 취급 UNKNOWN 및 NULL 모든 RDBMS에 할 수 없습니다.)

  3. ==============================

    3.NULL은 알 수없는 값이다. 따라서 판사 NULL == NULL 거의 의미가 있습니다. 질문처럼 그의는 "이 알 수없는 값이 그 알 수없는 값과 동일하다"- 단서 ..

    NULL은 알 수없는 값이다. 따라서 판사 NULL == NULL 거의 의미가 있습니다. 질문처럼 그의는 "이 알 수없는 값이 그 알 수없는 값과 동일하다"- 단서 ..

    널 (null)이 가능성이 더 나은 설명은 널 false로 동일되지 않는 이유를 참조하십시오

  4. ==============================

    4.NULL은 필드에 데이터의 부재이다.

    NULL은 필드에 데이터의 부재이다.

    당신은 IS NULL과 NULL 값을 확인할 수 있습니다

    참조 IS NULL

    mysql> SELECT NULL IS NULL;
    +--------------+
    | NULL IS NULL |
    +--------------+
    |            1 |
    +--------------+
    
    1 row in set (0.00 sec)
    
  5. ==============================

    5.당신이 NULL이 실제로 동일한 NULL을하는 비교를해야하는 경우 특별한 기본 값으로 병합 방법의 한 쌍을 사용할 수 있습니다. 가장 쉬운 예는 널 (NULL) 문자열 컬럼에 있습니다.

    당신이 NULL이 실제로 동일한 NULL을하는 비교를해야하는 경우 특별한 기본 값으로 병합 방법의 한 쌍을 사용할 수 있습니다. 가장 쉬운 예는 널 (NULL) 문자열 컬럼에 있습니다.

    coalesce(MiddleName,'')=coalesce(@MiddleName,'')
    

    @MiddleName 변수가 널 (null) 값을 가지고 있으며, 가운데 이름 컬럼이 또한 NULL 값이있는 경우이 비교는 true를 반환합니다. 물론, 그것은 또한 너무 빈 문자열과 일치합니다. 즉 문제가있는 경우, 당신은 같은 바보 뭔가 특별한 값을 변경할 수

    coalesce(MiddleName,'<NULL_DEFAULT>')=coalesce(@MiddleName,'<NULL_DEFAULT>')
    
  6. ==============================

    6.대신 당신은 IS NULL을 사용할 수 있습니다 NULL을 위해 =를 사용할 수 없습니다

    대신 당신은 IS NULL을 사용할 수 있습니다 NULL을 위해 =를 사용할 수 없습니다

    http://www.w3schools.com/sql/sql_null_values.asp

  7. ==============================

    7.링크를 따르십시오

    링크를 따르십시오

    NULL 값은 다른 값도 NULL에 비해 진정한 적이 없다.

    우리가 사용할 수 있습니다 확인하려면

    Is Null or Not Null operators ..
    

    문서

    올바른 날 경우 'm의 잘못

  8. ==============================

    8.식의 결과가 TRUE 같으면 SQL에서 WHERE 절은 값을 포함한다. ( "식의 결과가 아닌 경우 FALSE"로이 동일하지 않다)

    식의 결과가 TRUE 같으면 SQL에서 WHERE 절은 값을 포함한다. ( "식의 결과가 아닌 경우 FALSE"로이 동일하지 않다)

    NULL 한 측면들을 평가에 NULL을 가지고 SQL의 모든 이항 연산은 (알 수없는 동의어로서 NULL 생각)

    그래서

    Select ... Where null = null
    
    Select ... Where field = null
    
    Select ... Where null = field
    

    모든 각각의 경우에 어떠한 행을 반환하지 않습니다 사실이 아니다 NULL의 경우 클래스 평가됩니다

  9. ==============================

    9.실제로 NULL 수단 UNKNOWN 값 그래서 우리는 두 개의 알 수없는 값을 비교하는 방법.

    실제로 NULL 수단 UNKNOWN 값 그래서 우리는 두 개의 알 수없는 값을 비교하는 방법.

  10. from https://stackoverflow.com/questions/12853944/why-in-sql-null-cant-match-with-null by cc-by-sa and MIT license