[SQL] SQL가 null = NULL [중복]
SQLSQL가 null = NULL [중복]
차이 사이는 무엇인가
where x is null
과
where x = null
왜 후자는 작동하지 않는 이유는 무엇입니까?
해결법
-
==============================
1.SQL에서, 널 값 (등 <예 =! =) 비교 연산자를 사용하여 (다른 널 포함한) 다른 값 간의 비교는 여기서의 목적을 위해 거짓으로 간주 널, 초래할 것 절 (엄격 오히려 "거짓"보다, "사실이 아니다"이다, 말하기,하지만 효과는 동일합니다).
SQL에서, 널 값 (등 <예 =! =) 비교 연산자를 사용하여 (다른 널 포함한) 다른 값 간의 비교는 여기서의 목적을 위해 거짓으로 간주 널, 초래할 것 절 (엄격 오히려 "거짓"보다, "사실이 아니다"이다, 말하기,하지만 효과는 동일합니다).
추론 널 수단 "알"은 널 어떤 비교 결과 있도록 "알 수 없음"과 같은 점이다. 그래서 당신은 어디 my_column = null의 코딩에 의해 행에 아무런 타격을 얻을 수 있습니다.
널 및 널 (null이 아닌지)를 테스트하는 특별한 조건 널 아닌 통해 SQL은 컬럼 널인 경우 테스트하기위한 특정 문법을 제공한다.
여기에 조건의 다양성과 이상에 따라 그 효과를 보여주는 몇 가지 SQL입니다.
create table t (x int, y int); insert into t values (null, null), (null, 1), (1, 1); select 'x = null' as test , x, y from t where x = null union all select 'x != null', x, y from t where x != null union all select 'not (x = null)', x, y from t where not (x = null) union all select 'x = y', x, y from t where x = y union all select 'not (x = y)', x, y from t where not (x = y);
(예상대로)에만 1 행을 반환 :
TEST X Y x = y 1 1
SQLFiddle에이 실행을 참조하십시오
-
==============================
2.그것은 NULL이 동일 NULL을하지 않습니다 것을주의하는 것이 중요합니다.
그것은 NULL이 동일 NULL을하지 않습니다 것을주의하는 것이 중요합니다.
NULL은 값이 아닙니다, 따라서 다른 값과 비교 될 수 없다.
여기서 x는 x는 NULL 값인지를 확인 널이다.
여기서 x = 널이 x는 사실이 없을 것 NULL을, 동일 여부를 확인한다
-
==============================
3.먼저 필드 값이 null이 동일 아무것도하지 않는 특수 값이기 때문에 당신이 그것을 위해 =를 사용하여 동등 비교를 사용할 수 있도록 나중에, 당신은 그것을 예상 한대로 작동하지 않습니다 동안 널인지 확인하는 올바른 방법입니다.
먼저 필드 값이 null이 동일 아무것도하지 않는 특수 값이기 때문에 당신이 그것을 위해 =를 사용하여 동등 비교를 사용할 수 있도록 나중에, 당신은 그것을 예상 한대로 작동하지 않습니다 동안 널인지 확인하는 올바른 방법입니다.
그래서 당신은 필드 값이 null인지 여부를 확인해야하는 경우, 사용 :
where x is null
대신에:
where x = null
-
==============================
4.그 평등이 절대적으로 판단 할 수있는 일이라고 생각합니다. 널 (null)과의 문제는 본질적으로 알 수없는 점이다. 알 - 다른 값과 결합 널 (null)은 null입니다. SQL을 요구하는 것은 "내 값이 null 같다?" 입력이 null의 경우에도, 매번 알 수없는 것입니다. 나는 IS NULL의 구현이 명확하게 생각합니다.
그 평등이 절대적으로 판단 할 수있는 일이라고 생각합니다. 널 (null)과의 문제는 본질적으로 알 수없는 점이다. 알 - 다른 값과 결합 널 (null)은 null입니다. SQL을 요구하는 것은 "내 값이 null 같다?" 입력이 null의 경우에도, 매번 알 수없는 것입니다. 나는 IS NULL의 구현이 명확하게 생각합니다.
from https://stackoverflow.com/questions/9581745/sql-is-null-and-null by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 엄격한 관계 모델 전자 상거래 대 법인 속성 값 데이터베이스 (0) | 2020.03.11 |
---|---|
[SQL] CASE 및 GROUP BY와 피벗에 동적 대안 (0) | 2020.03.11 |
[SQL] 내부는 SQL에 LINQ에서 조인 구문은 무엇입니까? (0) | 2020.03.10 |
[SQL] 어떻게 날짜의 범위와 테이블을 채우는? (0) | 2020.03.10 |
[SQL] 왜 NULL = NULL은 SQL 서버에서 false로 평가 않습니다 (0) | 2020.03.10 |