IT

SQL이 null이고 = null

lottoking 2020. 8. 2. 17:16
반응형

SQL이 null이고 = null [중복]


가능한 이더 :
“= null”과“IS NULL”
이란 무엇입니까? IS NULL과 = NULL 사이에 차이가 있습니까?

차이점은 무엇입니까

where x is null

where x = null

왜 후자가 작동하지 않습니까?


SQL에서, 간의 비교 null값 (다른 포함한 다른 값 null(예, 비교 연산자를 사용하여) =, !=, <등)를 초래한다 null간주되는, falseWHERE 절의 목적 (엄격하게, 그것의 "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

반응형