SQL이 null이고 = null [중복]
가능한 이더 :
“= null”과“IS NULL”
이란 무엇입니까? IS NULL과 = NULL 사이에 차이가 있습니까?
차이점은 무엇입니까
where x is null
과
where x = null
왜 후자가 작동하지 않습니까?
SQL에서, 간의 비교 null
값 (다른 포함한 다른 값 null
(예, 비교 연산자를 사용하여) =
, !=
, <
등)를 초래한다 null
간주되는, false
WHERE 절의 목적 (엄격하게, 그것의 "NOT 말하기" "아니라가 진정한"거짓 이지만 효과는 동일합니다).
추론은 null
"알 수 없음"을 의미하는 a와의 비교 결과 null
도 "알 수 없음"입니다. 따라서 코딩하여 행에 히트를주지합니다 where my_column = null
.
SQL은 열이 null
, via is null
및 이면 테스트를위한 특수 구문을 제공합니다 is not null
. 이는을 통해 null
(또는 null
) 테스트하기위한 특수 조건 입니다.
다음은 다양한 조건과 위의 효과를 사용하여 일부 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에서 실행 되는 것을 참조하십시오
그것은 것을 유의해야 NULL이 동일 NULL을하지 않습니다 .
NULL
가치가 없습니다.
where x is null
x가 null 값인지 확인합니다.
where x = null
x가 NULL인지 여부를 확인하는 것입니다.
첫 번째는 필드 값이 올바른지 여부를 확인하는 올바른 방법입니다. null
나중에 null
아무것도없는 특수 값 이기 때문에 예상대로 작동하지 필드를 사용하여 동등 비교를 사용할 수 있습니다 =
.
따라서 필드 값이 확인해야 할 경우 다음을 null
사용하십시오.
where x is null
대신에 :
where x = null
평등은 절대적으로 결정될 수있는 생각합니다. 문제 null
는 어떤 것으로 알려지지 않았다는 것입니다. Null
다른 값과 결합하여 null
알 수 없습니다. SQL에 "내 값이 null
?"입니까? 입력이 인 경우에도 매번 알 수 없습니다 null
. 구현이 IS NULL
명확 하다고 생각합니다 .
참고 URL : https://stackoverflow.com/questions/9581745/sql-is-null-and-null
'IT' 카테고리의 다른 글
디자인 타임에 변수를 사용하여 선언 된 변수를 어떻게 안정적으로 확인할 수 있습니까? (0) | 2020.08.03 |
---|---|
PHP에서 POST를 통해 동일한 이름을 가진 여러 입력 (0) | 2020.08.03 |
SQL Server 2008 Windows 인증 로그인 오류 : 많은 수없는 도메인에서 로그인했습니다. (0) | 2020.08.02 |
Visual Studio의 "정의로 이동"은 메타 데이터 만 표시됩니다. (0) | 2020.08.02 |
MSTest 테스트 실행 중 Console.Out에 쓰는 방법 (0) | 2020.08.02 |