[SQL] 왜 SQL NULL에서 NULL과 일치하지 않을 수 있습니까?
SQL왜 SQL NULL에서 NULL과 일치하지 않을 수 있습니까?
단순히이 개념에 나에게 실제 예를 말할 NULL은 NULL 캔 누구와도 일치 할 수없는 이유 NULL 발현 I 궁금해을 공부하는 동안 나는, SQL 개념에 새로운 해요?
해결법
-
==============================
1.규칙 : 아니 심지어 NULL은 NULL과 동일 할 수있다.
규칙 : 아니 심지어 NULL은 NULL과 동일 할 수있다.
비 기술적 관점
당신은 두 여자를 요구하는 경우에, 얼마나 오래된 그들이있다? 당신이 당신의 질문에 대답을 거부하도록 듣는 될 수있다, 두 여자는 나이 당신에게 NULL을주는이 모두 비슷한 연령을 의미하지 않는다. 그래서 아무것도 널 (null)와 동일 할 수있다.
-
==============================
2.NULL은 값의 부재를 나타낸다. SQL의 디자이너는 것을 감지했다 결정, A (있는 우리가 그 가치를 모르는)와 B (있는 우리가 그 가치를 모르는) 같은지 여부를 물었을 때, 대답은 알 수 있어야합니다 - 그들은 동일한 수 있습니다 그들은하지 않을 수 있습니다. 우리는 어느 쪽이든 결정하는 충분한 정보를 가지고 있지 않습니다.
NULL은 값의 부재를 나타낸다. SQL의 디자이너는 것을 감지했다 결정, A (있는 우리가 그 가치를 모르는)와 B (있는 우리가 그 가치를 모르는) 같은지 여부를 물었을 때, 대답은 알 수 있어야합니다 - 그들은 동일한 수 있습니다 그들은하지 않을 수 있습니다. 우리는 어느 쪽이든 결정하는 충분한 정보를 가지고 있지 않습니다.
당신은 세 가지 가치 논리를 읽을 수도 있습니다 - SQL의 모든 비교 가능한 결과를, FALSE 및 UNKNOWN TRUE입니다 (동의어로 MySQL 취급 UNKNOWN 및 NULL 모든 RDBMS에 할 수 없습니다.)
-
==============================
3.NULL은 알 수없는 값이다. 따라서 판사 NULL == NULL 거의 의미가 있습니다. 질문처럼 그의는 "이 알 수없는 값이 그 알 수없는 값과 동일하다"- 단서 ..
NULL은 알 수없는 값이다. 따라서 판사 NULL == NULL 거의 의미가 있습니다. 질문처럼 그의는 "이 알 수없는 값이 그 알 수없는 값과 동일하다"- 단서 ..
널 (null)이 가능성이 더 나은 설명은 널 false로 동일되지 않는 이유를 참조하십시오
-
==============================
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.당신이 NULL이 실제로 동일한 NULL을하는 비교를해야하는 경우 특별한 기본 값으로 병합 방법의 한 쌍을 사용할 수 있습니다. 가장 쉬운 예는 널 (NULL) 문자열 컬럼에 있습니다.
당신이 NULL이 실제로 동일한 NULL을하는 비교를해야하는 경우 특별한 기본 값으로 병합 방법의 한 쌍을 사용할 수 있습니다. 가장 쉬운 예는 널 (NULL) 문자열 컬럼에 있습니다.
coalesce(MiddleName,'')=coalesce(@MiddleName,'')
@MiddleName 변수가 널 (null) 값을 가지고 있으며, 가운데 이름 컬럼이 또한 NULL 값이있는 경우이 비교는 true를 반환합니다. 물론, 그것은 또한 너무 빈 문자열과 일치합니다. 즉 문제가있는 경우, 당신은 같은 바보 뭔가 특별한 값을 변경할 수
coalesce(MiddleName,'<NULL_DEFAULT>')=coalesce(@MiddleName,'<NULL_DEFAULT>')
-
==============================
6.대신 당신은 IS NULL을 사용할 수 있습니다 NULL을 위해 =를 사용할 수 없습니다
대신 당신은 IS NULL을 사용할 수 있습니다 NULL을 위해 =를 사용할 수 없습니다
http://www.w3schools.com/sql/sql_null_values.asp
-
==============================
7.링크를 따르십시오
링크를 따르십시오
NULL 값은 다른 값도 NULL에 비해 진정한 적이 없다.
우리가 사용할 수 있습니다 확인하려면
Is Null or Not Null operators ..
문서
올바른 날 경우 'm의 잘못
-
==============================
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.실제로 NULL 수단 UNKNOWN 값 그래서 우리는 두 개의 알 수없는 값을 비교하는 방법.
실제로 NULL 수단 UNKNOWN 값 그래서 우리는 두 개의 알 수없는 값을 비교하는 방법.
from https://stackoverflow.com/questions/12853944/why-in-sql-null-cant-match-with-null by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 날짜 형식 변환? [YYYY-MM-DD에 DD.MM.YY] (0) | 2020.06.10 |
---|---|
[SQL] CommandType.StoredProcedure 대 CommandType.Text (0) | 2020.06.10 |
[SQL] 선택 문 내에서 NULL과 빈 문자열을 교체 (0) | 2020.06.10 |
[SQL] 어떻게 Access에서 하위 쿼리와 업데이트 쿼리를 수행합니까? (0) | 2020.06.10 |
[SQL] SQLite는 쿼리, 'LIKE' (0) | 2020.06.10 |