IS DISTINCT FROM는 Presto에서 두 값이 서로 다른지를 비교할 때 사용하는 특별한 비교 연산자입니다. 이 연산자는 일반적인 비교 연산자(=, !=)와 달리, NULL 값도 비교할 수 있습니다. NULL 값은 SQL에서 특별한 값으로 취급되기 때문에, 일반적인 비교 연산에서는 NULL = NULL 또는 NULL != NULL 같은 연산은 TRUE나 FALSE가 아닌 UNKNOWN을 반환합니다.
IS DISTINCT FROM는 이런 NULL 값을 비교하는 문제를 해결해 줍니다. IS DISTINCT FROM는 다음과 같은 동작을 합니다:
두 값이 다르면 TRUE를 반환합니다.
두 값이 같으면 FALSE를 반환합니다.
하나 또는 양쪽 값이 NULL이라도 정상적으로 비교를 수행합니다.
예시:
SELECT *
FROM your_table
WHERE column != '중복';
이 쿼리는 column이 '중복'이 아닌 모든 값을 반환하지만, NULL 값은 무시합니다. 왜냐하면 NULL != '중복'의 결과는 UNKNOWN이 되기 때문입니다.
SELECT *
FROM your_table
WHERE column IS DISTINCT FROM '중복';
이 쿼리는 column이 '중복'이 아닌 모든 값을 반환하며, NULL 값도 포함해서 결과를 반환합니다.